| 123456789101112131415161718192021222324252627282930313233343536 |
- package strmatcher
- type matcherEntry struct {
- matcher Matcher
- value uint32
- }
- // SimpleMatcherGroup is an implementation of MatcherGroup.
- // It simply stores all matchers in an array and sequentially matches them.
- type SimpleMatcherGroup struct {
- matchers []matcherEntry
- }
- // AddMatcher implements MatcherGroupForAll.AddMatcher.
- func (g *SimpleMatcherGroup) AddMatcher(matcher Matcher, value uint32) {
- g.matchers = append(g.matchers, matcherEntry{
- matcher: matcher,
- value: value,
- })
- }
- // Match implements MatcherGroup.Match.
- func (g *SimpleMatcherGroup) Match(input string) []uint32 {
- result := []uint32{}
- for _, e := range g.matchers {
- if e.matcher.Match(input) {
- result = append(result, e.value)
- }
- }
- return result
- }
- // MatchAny implements MatcherGroup.MatchAny.
- func (g *SimpleMatcherGroup) MatchAny(input string) bool {
- return len(g.Match(input)) > 0
- }
|