package formatters import ( "errors" "codeberg.org/danjones000/my-log/config" ) type formatMaker func(config.Formatters) (Formatter, error) var formatterMap = map[string]formatMaker{ "plain": newPlain, "json": newJson, "zero": newNull, } func Preferred() (f Formatter, err error) { conf, err := config.Load() if err != nil { return } std, _ := conf.Outputs.Stdout() return New(std.Format) } func New(kind string) (f Formatter, err error) { conf, err := config.Load() if err != nil { return } if make, ok := formatterMap[kind]; ok { return make(conf.Formatters) } return nil, errors.New("unimplemented") } func Kinds() []string { r := []string{} for kind, _ := range formatterMap { r = append(r, kind) } return r }