mirror of https://github.com/liamg/aminal.git
35 lines
649 B
Go
35 lines
649 B
Go
package config
|
|
|
|
import (
|
|
"bytes"
|
|
|
|
"github.com/BurntSushi/toml"
|
|
)
|
|
|
|
type Config struct {
|
|
DebugMode bool `toml:"debug"`
|
|
Rendering RenderingConfig `toml:"rendering"`
|
|
Slomo bool `toml:"slomo"`
|
|
ColourScheme ColourScheme `toml:"colours"`
|
|
}
|
|
|
|
type RenderingConfig struct {
|
|
AlwaysRepaint bool `toml:"always_repaint"`
|
|
}
|
|
|
|
func Parse(data []byte) (*Config, error) {
|
|
c := DefaultConfig
|
|
err := toml.Unmarshal(data, &c)
|
|
return &c, err
|
|
}
|
|
|
|
func (c *Config) Encode() ([]byte, error) {
|
|
var buf bytes.Buffer
|
|
e := toml.NewEncoder(&buf)
|
|
err := e.Encode(c)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return buf.Bytes(), nil
|
|
}
|