Documentation ¶
Overview ¶
Package pathpattern implements path matching.
Examples of supported patterns:
- "/"
- "/abc""
- "/abc/{variable}" (matches until next '/' or end-of-string)
- "/abc/{variable*}" (matches everything, including "/abc" if "/abc" has root)
- "/abc/{ variable | prefix_(.*}_suffix }" (matches regular expressions)
Index ¶
- Constants
- Variables
- func EqualSuffix(a, b Suffix) bool
- func PathFromHost(host string, specialDashes bool) string
- type Node
- func (currentNode *Node) Add(path string, value interface{}, options *Options) error
- func (currentNode *Node) CreateNode(path string, options *Options) (*Node, error)
- func (currentNode *Node) Match(path string) (*Node, []string)
- func (currentNode *Node) MustAdd(path string, value interface{}, options *Options)
- func (currentNode *Node) String() string
- type Options
- type Suffix
- type SuffixKind
- type SuffixList
Constants ¶
View Source
const ( // SuffixKindConstant matches a constant string SuffixKindConstant = SuffixKind(iota) // SuffixKindRegExp matches a regular expression SuffixKindRegExp // SuffixKindVariable matches everything until '/' SuffixKindVariable // SuffixKindEverything matches everything (until end-of-string) SuffixKindEverything )
Note that order is important!
Variables ¶
View Source
var DefaultOptions = &Options{ SupportWildcard: true, }
Functions ¶
func EqualSuffix ¶
func PathFromHost ¶
PathFromHost converts a host pattern to a path pattern.
Examples:
- PathFromHost("some-subdomain.domain.com", false) -> "com/./domain/./some-subdomain"
- PathFromHost("some-subdomain.domain.com", true) -> "com/./domain/./subdomain/-/some"
Types ¶
type Node ¶
type Node struct { VariableNames []string Value interface{} Suffixes SuffixList }
func (*Node) CreateNode ¶
type Suffix ¶
type Suffix struct { Kind SuffixKind Pattern string // Next node Node *Node // contains filtered or unexported fields }
Suffix describes condition that
type SuffixKind ¶
type SuffixKind int
type SuffixList ¶
type SuffixList []Suffix
func (SuffixList) Len ¶
func (list SuffixList) Len() int
func (SuffixList) Less ¶
func (list SuffixList) Less(i, j int) bool
func (SuffixList) Swap ¶
func (list SuffixList) Swap(i, j int)
Click to show internal directories.
Click to hide internal directories.