| 123456789101112131415161718192021222324252627282930 |
- package strmatcher
- // FullMatcherGroup is an implementation of MatcherGroup.
- // It uses a hash table to facilitate exact match lookup.
- type FullMatcherGroup struct {
- matchers map[string][]uint32
- }
- // AddFullMatcher implements MatcherGroupForFull.AddFullMatcher.
- func (g *FullMatcherGroup) AddFullMatcher(matcher FullMatcher, value uint32) {
- if g.matchers == nil {
- g.matchers = make(map[string][]uint32)
- }
- domain := matcher.Pattern()
- g.matchers[domain] = append(g.matchers[domain], value)
- }
- // Match implements MatcherGroup.Match.
- func (g *FullMatcherGroup) Match(input string) []uint32 {
- if g.matchers == nil {
- return nil
- }
- return g.matchers[input]
- }
- // MatchAny implements MatcherGroup.Any.
- func (g *FullMatcherGroup) MatchAny(input string) bool {
- return len(g.Match(input)) > 0
- }
|