strmatcher

package
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 10, 2021 License: MPL-2.0 Imports: 2 Imported by: 19

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DomainMatcherGroup

type DomainMatcherGroup struct {
	// contains filtered or unexported fields
}

DomainMatcherGroup is a IndexMatcher for a large set of Domain matchers. Visible for testing only.

func (*DomainMatcherGroup) Add

func (g *DomainMatcherGroup) Add(domain string, value uint32)

func (*DomainMatcherGroup) Match

func (g *DomainMatcherGroup) Match(domain string) []uint32

type FullMatcherGroup

type FullMatcherGroup struct {
	// contains filtered or unexported fields
}

func (*FullMatcherGroup) Add

func (g *FullMatcherGroup) Add(domain string, value uint32)

func (*FullMatcherGroup) Match

func (g *FullMatcherGroup) Match(str string) []uint32

type IndexMatcher

type IndexMatcher interface {
	// Match returns the index of a matcher that matches the input. It returns empty array if no such matcher exists.
	Match(input string) []uint32
}

IndexMatcher is the interface for matching with a group of matchers.

type Matcher

type Matcher interface {
	// Match returns true if the given string matches a predefined pattern.
	Match(string) bool
	String() string
}

Matcher is the interface to determine a string matches a pattern.

type MatcherGroup

type MatcherGroup struct {
	// contains filtered or unexported fields
}

MatcherGroup is an implementation of IndexMatcher. Empty initialization works.

func (*MatcherGroup) Add

func (g *MatcherGroup) Add(m Matcher) uint32

Add adds a new Matcher into the MatcherGroup, and returns its index. The index will never be 0.

func (*MatcherGroup) Match

func (g *MatcherGroup) Match(pattern string) []uint32

Match implements IndexMatcher.Match.

func (*MatcherGroup) Size

func (g *MatcherGroup) Size() uint32

Size returns the number of matchers in the MatcherGroup.

type Type

type Type byte

Type is the type of the matcher.

const (
	// Full is the type of matcher that the input string must exactly equal to the pattern.
	Full Type = iota
	// Substr is the type of matcher that the input string must contain the pattern as a sub-string.
	Substr
	// Domain is the type of matcher that the input string must be a sub-domain or itself of the pattern.
	Domain
	// Regex is the type of matcher that the input string must matches the regular-expression pattern.
	Regex
)

func (Type) New

func (t Type) New(pattern string) (Matcher, error)

New creates a new Matcher based on the given pattern.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL