Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / github.com / !burnt!sushi / toml@v0.3.1 / _examples / example.go
1 package main
2
3 import (
4         "fmt"
5         "time"
6
7         "github.com/BurntSushi/toml"
8 )
9
10 type tomlConfig struct {
11         Title   string
12         Owner   ownerInfo
13         DB      database `toml:"database"`
14         Servers map[string]server
15         Clients clients
16 }
17
18 type ownerInfo struct {
19         Name string
20         Org  string `toml:"organization"`
21         Bio  string
22         DOB  time.Time
23 }
24
25 type database struct {
26         Server  string
27         Ports   []int
28         ConnMax int `toml:"connection_max"`
29         Enabled bool
30 }
31
32 type server struct {
33         IP string
34         DC string
35 }
36
37 type clients struct {
38         Data  [][]interface{}
39         Hosts []string
40 }
41
42 func main() {
43         var config tomlConfig
44         if _, err := toml.DecodeFile("example.toml", &config); err != nil {
45                 fmt.Println(err)
46                 return
47         }
48
49         fmt.Printf("Title: %s\n", config.Title)
50         fmt.Printf("Owner: %s (%s, %s), Born: %s\n",
51                 config.Owner.Name, config.Owner.Org, config.Owner.Bio,
52                 config.Owner.DOB)
53         fmt.Printf("Database: %s %v (Max conn. %d), Enabled? %v\n",
54                 config.DB.Server, config.DB.Ports, config.DB.ConnMax,
55                 config.DB.Enabled)
56         for serverName, server := range config.Servers {
57                 fmt.Printf("Server: %s (%s, %s)\n", serverName, server.IP, server.DC)
58         }
59         fmt.Printf("Client data: %v\n", config.Clients.Data)
60         fmt.Printf("Client hosts: %v\n", config.Clients.Hosts)
61 }