package router import ( ctxpkg "github.com/noahlann/nnet/pkg/context" ) // CustomMatcher 自定义匹配器 type CustomMatcher struct { fn func(input MatchInput, ctx ctxpkg.Context) bool priority int } // NewCustomMatcher 创建自定义匹配器 func NewCustomMatcher(fn func(input MatchInput, ctx ctxpkg.Context) bool) *CustomMatcher { return &CustomMatcher{ fn: fn, priority: 50, // 自定义匹配器默认优先级较低 } } // WithPriority 设置优先级 func (m *CustomMatcher) WithPriority(priority int) *CustomMatcher { m.priority = priority return m } // Match 匹配数据 func (m *CustomMatcher) Match(input MatchInput, ctx ctxpkg.Context) bool { if m.fn == nil { return false } return m.fn(input, ctx) } // Priority 获取优先级 func (m *CustomMatcher) Priority() int { return m.priority }