package config import ( "fmt" "os" ) // A method of writing output to the user. type Destination interface { // Write data to this destination. Write(data string) error } // A destination writing to stdout. type StdoutDestination struct{} func (d StdoutDestination) Write(data string) error { fmt.Println(data) return nil } // A destination writing to a file. type FileDestination struct{ Path string } func (d FileDestination) Write(data string) error { return os.WriteFile(d.Path, []byte(data+"\n"), 0644) }