github.com/sirkon/goproxy@v1.4.8/router.go (about) 1 package goproxy 2 3 // Router routes to some plugin 4 type Router struct { 5 tree *node 6 } 7 8 // NewRouter ... 9 func NewRouter() (*Router, error) { 10 return &Router{ 11 tree: &node{}, 12 }, nil 13 } 14 15 // AddRoute add plugin for a given path mask 16 func (r *Router) AddRoute(mask string, f Plugin) error { 17 return r.tree.addNode(mask, f) 18 } 19 20 // Plugin returns plugin for given route 21 func (r *Router) Factory(path string) Plugin { 22 return r.tree.getNode(path) 23 }