| // code examples for godoc | 
 |  | 
 | package toml | 
 |  | 
 | import ( | 
 | 	"fmt" | 
 | ) | 
 |  | 
 | func ExampleNodeFilterFn_filterExample() { | 
 | 	tree, _ := Load(` | 
 |       [struct_one] | 
 |       foo = "foo" | 
 |       bar = "bar" | 
 |  | 
 |       [struct_two] | 
 |       baz = "baz" | 
 |       gorf = "gorf" | 
 |     `) | 
 |  | 
 | 	// create a query that references a user-defined-filter | 
 | 	query, _ := CompileQuery("$[?(bazOnly)]") | 
 |  | 
 | 	// define the filter, and assign it to the query | 
 | 	query.SetFilter("bazOnly", func(node interface{}) bool { | 
 | 		if tree, ok := node.(*TomlTree); ok { | 
 | 			return tree.Has("baz") | 
 | 		} | 
 | 		return false // reject all other node types | 
 | 	}) | 
 |  | 
 | 	// results contain only the 'struct_two' TomlTree | 
 | 	query.Execute(tree) | 
 | } | 
 |  | 
 | func ExampleQuery_queryExample() { | 
 | 	config, _ := Load(` | 
 |       [[book]] | 
 |       title = "The Stand" | 
 |       author = "Stephen King" | 
 |       [[book]] | 
 |       title = "For Whom the Bell Tolls" | 
 |       author = "Ernest Hemmingway" | 
 |       [[book]] | 
 |       title = "Neuromancer" | 
 |       author = "William Gibson" | 
 |     `) | 
 |  | 
 | 	// find and print all the authors in the document | 
 | 	authors, _ := config.Query("$.book.author") | 
 | 	for _, name := range authors.Values() { | 
 | 		fmt.Println(name) | 
 | 	} | 
 | } | 
 |  | 
 | func Example_comprehensiveExample() { | 
 | 	config, err := LoadFile("config.toml") | 
 |  | 
 | 	if err != nil { | 
 | 		fmt.Println("Error ", err.Error()) | 
 | 	} else { | 
 | 		// retrieve data directly | 
 | 		user := config.Get("postgres.user").(string) | 
 | 		password := config.Get("postgres.password").(string) | 
 |  | 
 | 		// or using an intermediate object | 
 | 		configTree := config.Get("postgres").(*TomlTree) | 
 | 		user = configTree.Get("user").(string) | 
 | 		password = configTree.Get("password").(string) | 
 | 		fmt.Println("User is ", user, ". Password is ", password) | 
 |  | 
 | 		// show where elements are in the file | 
 | 		fmt.Printf("User position: %v\n", configTree.GetPosition("user")) | 
 | 		fmt.Printf("Password position: %v\n", configTree.GetPosition("password")) | 
 |  | 
 | 		// use a query to gather elements without walking the tree | 
 | 		results, _ := config.Query("$..[user,password]") | 
 | 		for ii, item := range results.Values() { | 
 | 			fmt.Printf("Query result %d: %v\n", ii, item) | 
 | 		} | 
 | 	} | 
 | } |