package pathpattern
import "github.com/getkin/kin-openapi/routers/legacy/pathpattern"
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 any, 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 any, options *Options)
- func (currentNode *Node) String() string
- type Options
- type Suffix
- type SuffixKind
- type SuffixList
Constants ¶
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 ¶
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 any Suffixes SuffixList }
func (*Node) Add ¶
func (*Node) CreateNode ¶
func (*Node) Match ¶
func (*Node) MustAdd ¶
func (*Node) String ¶
type Options ¶
type Suffix ¶
type Suffix struct { Kind SuffixKind Pattern string // Next node Node *Node // contains filtered or unexported fields }
Suffix describes condition that
func (Suffix) String ¶
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)
Source Files ¶
- Version
- v0.129.0 (latest)
- Published
- Dec 24, 2024
- Platform
- linux/amd64
- Imports
- 5 packages
- Last checked
- 1 day ago –
Tools for package owners.