matterbridge/vendor/github.com/spf13/viper/internal/encoding/toml/codec.go

40 lines
663 B
Go
Raw Normal View History

2022-06-11 14:07:42 -07:00
//go:build viper_toml1
// +build viper_toml1
2022-04-25 14:50:10 -07:00
package toml
import (
"github.com/pelletier/go-toml"
)
// Codec implements the encoding.Encoder and encoding.Decoder interfaces for TOML encoding.
type Codec struct{}
2022-04-25 14:50:10 -07:00
func (Codec) Encode(v map[string]interface{}) ([]byte, error) {
t, err := toml.TreeFromMap(v)
if err != nil {
return nil, err
}
2022-04-25 14:50:10 -07:00
s, err := t.ToTomlString()
if err != nil {
return nil, err
}
2022-04-25 14:50:10 -07:00
return []byte(s), nil
}
2022-04-25 14:50:10 -07:00
func (Codec) Decode(b []byte, v map[string]interface{}) error {
tree, err := toml.LoadBytes(b)
if err != nil {
return err
}
2022-04-25 14:50:10 -07:00
tmap := tree.ToMap()
for key, value := range tmap {
v[key] = value
}
2022-04-25 14:50:10 -07:00
return nil
}