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)

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

var DefaultOptions = &Options{
	SupportWildcard: true,
}

FUNCTIONS

func EqualSuffix(a, b Suffix) bool
func PathFromHost(host string, specialDashes bool) string
    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 struct {
	VariableNames []string
	Value         any
	Suffixes      SuffixList
}

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 struct {
	SupportWildcard bool
	SupportRegExp   bool
}

type Suffix struct {
	Kind    SuffixKind
	Pattern string

	// Next node
	Node *Node
	// Has unexported fields.
}
    Suffix describes condition that

func (suffix Suffix) String() string

type SuffixKind int

type SuffixList []Suffix

