package toml import ( "github.com/pelletier/go-toml" ) // Codec implements the encoding.Encoder and encoding.Decoder interfaces for TOML encoding. type Codec struct{} func (Codec) Encode(v interface{}) ([]byte, error) { if m, ok := v.(map[string]interface{}); ok { t, err := toml.TreeFromMap(m) if err != nil { return nil, err } s, err := t.ToTomlString() if err != nil { return nil, err } return []byte(s), nil } return toml.Marshal(v) } func (Codec) Decode(b []byte, v map[string]interface{}) error { tree, err := toml.LoadBytes(b) if err != nil { return err } tmap := tree.ToMap() for key, value := range tmap { v[key] = value } return nil }