You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
657 B
Go
30 lines
657 B
Go
3 years ago
|
package mapping
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"encoding/json"
|
||
|
"io"
|
||
|
|
||
|
"github.com/pelletier/go-toml/v2"
|
||
|
)
|
||
|
|
||
|
// UnmarshalTomlBytes unmarshals TOML bytes into the given v.
|
||
|
func UnmarshalTomlBytes(content []byte, v interface{}) error {
|
||
|
return UnmarshalTomlReader(bytes.NewReader(content), v)
|
||
|
}
|
||
|
|
||
|
// UnmarshalTomlReader unmarshals TOML from the given io.Reader into the given v.
|
||
|
func UnmarshalTomlReader(r io.Reader, v interface{}) error {
|
||
|
var val interface{}
|
||
|
if err := toml.NewDecoder(r).Decode(&val); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
var buf bytes.Buffer
|
||
|
if err := json.NewEncoder(&buf).Encode(val); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
return UnmarshalJsonReader(&buf, v)
|
||
|
}
|