package tools import ( "encoding/json" "os" "gopkg.in/yaml.v3" ) func File() *file { return &file{} } type ( file struct { } ) func (t *file) WriteYaml(path string, obj any) error { out, err := yaml.Marshal(obj) if err != nil { return err } return os.WriteFile(path, out, 0644) } func (t *file) WriteJSON(path string, obj any) error { out, err := json.Marshal(obj) if err != nil { return err } return os.WriteFile(path, out, 0644) } func (t *file) ReadYaml(path string, obj any) error { in, err := os.ReadFile(path) if err != nil { return err } return yaml.Unmarshal(in, obj) } func (t *file) ReadJSON(path string, obj any) error { in, err := os.ReadFile(path) if err != nil { return err } return json.Unmarshal(in, obj) }