diff options
Diffstat (limited to 'internal/action/action.go')
| -rw-r--r-- | internal/action/action.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/internal/action/action.go b/internal/action/action.go index 44f27f8..5e66708 100644 --- a/internal/action/action.go +++ b/internal/action/action.go @@ -1,5 +1,28 @@ package action +import "strings" + +func WordPrefixMatch(input, name string) bool { + inputWords := strings.Fields(strings.ToLower(input)) + if len(inputWords) == 0 { + return false + } + nameWords := strings.Fields(strings.ToLower(name)) + for _, iw := range inputWords { + found := false + for _, nw := range nameWords { + if strings.HasPrefix(nw, iw) || strings.HasPrefix(iw, nw) { + found = true + break + } + } + if !found { + return false + } + } + return true +} + type Action struct { Type string TargetID string |
