diff options
| author | ayyansea <ayyansea@gmail.com> | 2024-11-15 23:15:00 +0300 |
|---|---|---|
| committer | ayyansea <ayyansea@gmail.com> | 2024-11-15 23:15:00 +0300 |
| commit | c0d7adb1a1b28b6b1de9ccd95d4963a8342ccdbc (patch) | |
| tree | 1de133ef28e1f846e58bdaa49beb17dd1857424c /cmd/filters.go | |
| parent | cc7f4da0796fbd76301173dede6791f4525bf8e0 (diff) | |
feat: add Filters
Diffstat (limited to 'cmd/filters.go')
| -rw-r--r-- | cmd/filters.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/cmd/filters.go b/cmd/filters.go new file mode 100644 index 0000000..28592ba --- /dev/null +++ b/cmd/filters.go @@ -0,0 +1,46 @@ +package cmd + +import ( + "strings" +) + +var filterList = map[string]interface{}{ + "uppercase": NewUppercaseFilter, + "lowercase": NewLowercaseFilter, + "lowercase_extra": NewLowercaseFilterWithExtraSteps, +} + +func NewUppercaseFilter() Filter { + uppercaseFilter := Filter{ + name: "Uppercase", + action: strings.ToUpper, + subfilters: []Filter{}, + } + + return uppercaseFilter +} + +func NewLowercaseFilter() Filter { + lowercaseFilter := Filter{ + name: "Lowercase", + action: strings.ToLower, + subfilters: []Filter{}, + } + + return lowercaseFilter +} + +func NewLowercaseFilterWithExtraSteps() Filter { + var subfilters []Filter + + subfilters = append(subfilters, NewUppercaseFilter()) + subfilters = append(subfilters, NewLowercaseFilter()) + + filter := Filter{ + name: "Lowercase (extra dumb)", + action: func(string) string { return "" }, + subfilters: subfilters, + } + + return filter +} |
