From c0d7adb1a1b28b6b1de9ccd95d4963a8342ccdbc Mon Sep 17 00:00:00 2001 From: ayyansea Date: Fri, 15 Nov 2024 23:15:00 +0300 Subject: feat: add Filters --- cmd/filters.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 cmd/filters.go (limited to 'cmd/filters.go') 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 +} -- cgit v1.2.3