diff --git a/client/test/test.go b/client/test/test.go index 42b1a74..4699876 100644 --- a/client/test/test.go +++ b/client/test/test.go @@ -21,13 +21,17 @@ func main() { Ignore: []string{"one", "two", "four", "seven"}, } - mergo.Merge(&dest, src, mergo.WithTransformers()) + mergo.Merge(&dest, src, mergo.WithTransformers(StringSliceTransformer{})) fmt.Println(dest) // Will print // {two 2} } -func MergeStrings(typ reflect.Type) func(dst, src reflect.Value) error { +type StringSliceTransformer struct { +} + +// MergeStrings merges two strings +func (s StringSliceTransformer) Transformer(typ reflect.Type) func(dst, src reflect.Value) error { if typ == reflect.TypeOf([]string{}) { return func(dst, src reflect.Value) error { diff --git a/common/structures.go b/common/structures.go index 06d9ee2..733ad61 100644 --- a/common/structures.go +++ b/common/structures.go @@ -1,10 +1,16 @@ package common //FileTypes is for ignoring files to add or ignoring compress, or for locked files, all use the same type of struct (files, folders and exts) +// type FileTypes struct { +// Files []string `toml:"files"` +// Exts []string `toml:"exts"` +// Folders []string `toml:"folders"` +// } + type FileTypes struct { - Files []string `toml:"files"` - Exts []string `toml:"exts"` - Folders []string `toml:"folders"` + Files map[string]string `toml:"files"` + Folders map[string]string `toml:"folders"` + Exts map[string]string `toml:"exts"` } // RepoRefreshRequest returns locks, ignores, and commits/branches. Server marshals into this, client unmarshals