5849898283
Unit tests functional and coverage back to 100% Add more routes to dictionary, add more credentials, add default port 5554, rename cameradar logs ENV variable, improve unit test readability, remove tmp file
106 lines
2.2 KiB
Go
106 lines
2.2 KiB
Go
// code examples for godoc
|
|
|
|
package toml_test
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
|
|
toml "github.com/pelletier/go-toml"
|
|
)
|
|
|
|
func Example_tree() {
|
|
config, err := toml.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").(*toml.Tree)
|
|
user = configTree.Get("user").(string)
|
|
password = configTree.Get("password").(string)
|
|
fmt.Println("User is", user, " and 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"))
|
|
}
|
|
}
|
|
|
|
func Example_unmarshal() {
|
|
type Employer struct {
|
|
Name string
|
|
Phone string
|
|
}
|
|
type Person struct {
|
|
Name string
|
|
Age int64
|
|
Employer Employer
|
|
}
|
|
|
|
document := []byte(`
|
|
name = "John"
|
|
age = 30
|
|
[employer]
|
|
name = "Company Inc."
|
|
phone = "+1 234 567 89012"
|
|
`)
|
|
|
|
person := Person{}
|
|
toml.Unmarshal(document, &person)
|
|
fmt.Println(person.Name, "is", person.Age, "and works at", person.Employer.Name)
|
|
// Output:
|
|
// John is 30 and works at Company Inc.
|
|
}
|
|
|
|
func ExampleMarshal() {
|
|
type Postgres struct {
|
|
User string `toml:"user"`
|
|
Password string `toml:"password"`
|
|
Database string `toml:"db" commented:"true" comment:"not used anymore"`
|
|
}
|
|
type Config struct {
|
|
Postgres Postgres `toml:"postgres" comment:"Postgres configuration"`
|
|
}
|
|
|
|
config := Config{Postgres{User: "pelletier", Password: "mypassword", Database: "old_database"}}
|
|
b, err := toml.Marshal(config)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
fmt.Println(string(b))
|
|
// Output:
|
|
// # Postgres configuration
|
|
// [postgres]
|
|
//
|
|
// # not used anymore
|
|
// # db = "old_database"
|
|
// password = "mypassword"
|
|
// user = "pelletier"
|
|
}
|
|
|
|
func ExampleUnmarshal() {
|
|
type Postgres struct {
|
|
User string
|
|
Password string
|
|
}
|
|
type Config struct {
|
|
Postgres Postgres
|
|
}
|
|
|
|
doc := []byte(`
|
|
[postgres]
|
|
user = "pelletier"
|
|
password = "mypassword"`)
|
|
|
|
config := Config{}
|
|
toml.Unmarshal(doc, &config)
|
|
fmt.Println("user=", config.Postgres.User)
|
|
// Output:
|
|
// user= pelletier
|
|
}
|