diff options
author | Wim <wim@42.be> | 2017-06-06 00:01:05 +0200 |
---|---|---|
committer | Wim <wim@42.be> | 2017-06-06 00:04:18 +0200 |
commit | 3a183cb218c6812964a70d2e75884ad7071d9c0c (patch) | |
tree | ee0d2492c27e84ace88acfcfdc533545f42ccb21 /vendor/github.com/labstack/echo/router.go | |
parent | 2eecaccd1c77e8990a80e6b4b6ad6b13a9c95896 (diff) | |
download | matterbridge-msglm-3a183cb218c6812964a70d2e75884ad7071d9c0c.tar.gz matterbridge-msglm-3a183cb218c6812964a70d2e75884ad7071d9c0c.tar.bz2 matterbridge-msglm-3a183cb218c6812964a70d2e75884ad7071d9c0c.zip |
Update vendor
Diffstat (limited to 'vendor/github.com/labstack/echo/router.go')
-rw-r--r-- | vendor/github.com/labstack/echo/router.go | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/vendor/github.com/labstack/echo/router.go b/vendor/github.com/labstack/echo/router.go index 5cb47116..2ef904e0 100644 --- a/vendor/github.com/labstack/echo/router.go +++ b/vendor/github.com/labstack/echo/router.go @@ -7,7 +7,7 @@ type ( // request matching and URL path parameter parsing. Router struct { tree *node - routes map[string]Route + routes map[string]*Route echo *Echo } node struct { @@ -47,7 +47,7 @@ func NewRouter(e *Echo) *Router { tree: &node{ methodHandler: new(methodHandler), }, - routes: make(map[string]Route), + routes: map[string]*Route{}, echo: e, } } @@ -101,7 +101,7 @@ func (r *Router) insert(method, path string, h HandlerFunc, t kind, ppath string cn := r.tree // Current node as root if cn == nil { - panic("echo ⇛ invalid method") + panic("echo: invalid method") } search := path @@ -296,18 +296,19 @@ func (n *node) checkMethodNotAllowed() HandlerFunc { // - Get context from `Echo#AcquireContext()` // - Reset it `Context#Reset()` // - Return it `Echo#ReleaseContext()`. -func (r *Router) Find(method, path string, context Context) { - context.SetPath(path) +func (r *Router) Find(method, path string, c Context) { + ctx := c.(*context) + ctx.path = path cn := r.tree // Current node as root var ( search = path - c *node // Child node - n int // Param counter - nk kind // Next kind - nn *node // Next node - ns string // Next search - pvalues = context.ParamValues() + child *node // Child node + n int // Param counter + nk kind // Next kind + nn *node // Next node + ns string // Next search + pvalues = ctx.pvalues // Use the internal slice so the interface can keep the illusion of a dynamic slice ) // Search order static > param > any @@ -352,20 +353,20 @@ func (r *Router) Find(method, path string, context Context) { } // Static node - if c = cn.findChild(search[0], skind); c != nil { + if child = cn.findChild(search[0], skind); child != nil { // Save next if cn.prefix[len(cn.prefix)-1] == '/' { // Issue #623 nk = pkind nn = cn ns = search } - cn = c + cn = child continue } // Param node Param: - if c = cn.findChildByKind(pkind); c != nil { + if child = cn.findChildByKind(pkind); child != nil { // Issue #378 if len(pvalues) == n { continue @@ -378,7 +379,7 @@ func (r *Router) Find(method, path string, context Context) { ns = search } - cn = c + cn = child i, l := 0, len(search) for ; i < l && search[i] != '/'; i++ { } @@ -409,13 +410,13 @@ func (r *Router) Find(method, path string, context Context) { } End: - context.SetHandler(cn.findHandler(method)) - context.SetPath(cn.ppath) - context.SetParamNames(cn.pnames...) + ctx.handler = cn.findHandler(method) + ctx.path = cn.ppath + ctx.pnames = cn.pnames // NOTE: Slow zone... - if context.Handler() == nil { - context.SetHandler(cn.checkMethodNotAllowed()) + if ctx.handler == nil { + ctx.handler = cn.checkMethodNotAllowed() // Dig further for any, might have an empty value for *, e.g. // serving a directory. Issue #207. @@ -423,12 +424,12 @@ End: return } if h := cn.findHandler(method); h != nil { - context.SetHandler(h) + ctx.handler = h } else { - context.SetHandler(cn.checkMethodNotAllowed()) + ctx.handler = cn.checkMethodNotAllowed() } - context.SetPath(cn.ppath) - context.SetParamNames(cn.pnames...) + ctx.path = cn.ppath + ctx.pnames = cn.pnames pvalues[len(cn.pnames)-1] = "" } |