| 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
- }
- func NewFullMatcherGroup() *FullMatcherGroup {
- return &FullMatcherGroup{
- matchers: make(map[string][]uint32),
- }
- }
- // AddFullMatcher implements MatcherGroupForFull.AddFullMatcher.
- func (g *FullMatcherGroup) AddFullMatcher(matcher FullMatcher, value uint32) {
- domain := matcher.Pattern()
- g.matchers[domain] = append(g.matchers[domain], value)
- }
- // Match implements MatcherGroup.Match.
- func (g *FullMatcherGroup) Match(input string) []uint32 {
- return g.matchers[input]
- }
- // MatchAny implements MatcherGroup.Any.
- func (g *FullMatcherGroup) MatchAny(input string) bool {
- _, found := g.matchers[input]
- return found
- }
|