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  }