SYMBOL INDEX (427 symbols across 74 files) FILE: _examples/custom-handler/main.go type Handler (line 10) | type Handler method ServeHTTP (line 12) | func (h Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { function main (line 20) | func main() { function customHandler (line 26) | func customHandler(w http.ResponseWriter, r *http.Request) error { FILE: _examples/custom-method/main.go function init (line 10) | func init() { function main (line 16) | func main() { FILE: _examples/fileserver/main.go function main (line 28) | func main() { function FileServer (line 48) | func FileServer(r chi.Router, path string, root http.FileSystem) { FILE: _examples/graceful/main.go function main (line 17) | func main() { function service (line 45) | func service() http.Handler { FILE: _examples/hello-world/main.go function main (line 10) | func main() { FILE: _examples/limits/main.go function main (line 21) | func main() { FILE: _examples/logging/main.go function main (line 7) | func main() { FILE: _examples/pathvalue/main.go function main (line 10) | func main() { function pathValueHandler (line 20) | func pathValueHandler(w http.ResponseWriter, r *http.Request) { FILE: _examples/rest/main.go function main (line 55) | func main() { function ListArticles (line 114) | func ListArticles(w http.ResponseWriter, r *http.Request) { function ArticleCtx (line 124) | func ArticleCtx(next http.Handler) http.Handler { function SearchArticles (line 149) | func SearchArticles(w http.ResponseWriter, r *http.Request) { function CreateArticle (line 155) | func CreateArticle(w http.ResponseWriter, r *http.Request) { function GetArticle (line 173) | func GetArticle(w http.ResponseWriter, r *http.Request) { function UpdateArticle (line 186) | func UpdateArticle(w http.ResponseWriter, r *http.Request) { function DeleteArticle (line 201) | func DeleteArticle(w http.ResponseWriter, r *http.Request) { function adminRouter (line 219) | func adminRouter() chi.Router { function AdminOnly (line 235) | func AdminOnly(next http.Handler) http.Handler { function paginate (line 248) | func paginate(next http.Handler) http.Handler { function init (line 258) | func init() { type UserPayload (line 290) | type UserPayload struct method Bind (line 301) | func (u *UserPayload) Bind(r *http.Request) error { method Render (line 305) | func (u *UserPayload) Render(w http.ResponseWriter, r *http.Request) e... function NewUserPayloadResponse (line 295) | func NewUserPayloadResponse(user *User) *UserPayload { type ArticleRequest (line 319) | type ArticleRequest struct method Bind (line 327) | func (a *ArticleRequest) Bind(r *http.Request) error { type ArticleResponse (line 350) | type ArticleResponse struct method Render (line 372) | func (rd *ArticleResponse) Render(w http.ResponseWriter, r *http.Reque... function NewArticleResponse (line 360) | func NewArticleResponse(article *Article) *ArticleResponse { function NewArticleListResponse (line 378) | func NewArticleListResponse(articles []*Article) []render.Renderer { type ErrResponse (line 401) | type ErrResponse struct method Render (line 410) | func (e *ErrResponse) Render(w http.ResponseWriter, r *http.Request) e... function ErrInvalidRequest (line 415) | func ErrInvalidRequest(err error) render.Renderer { function ErrRender (line 424) | func ErrRender(err error) render.Renderer { type User (line 440) | type User struct type Article (line 447) | type Article struct function dbNewArticle (line 469) | func dbNewArticle(article *Article) (string, error) { function dbGetArticle (line 475) | func dbGetArticle(id string) (*Article, error) { function dbGetArticleBySlug (line 484) | func dbGetArticleBySlug(slug string) (*Article, error) { function dbUpdateArticle (line 493) | func dbUpdateArticle(id string, article *Article) (*Article, error) { function dbRemoveArticle (line 503) | func dbRemoveArticle(id string) (*Article, error) { function dbGetUser (line 513) | func dbGetUser(id int64) (*User, error) { FILE: _examples/router-walk/main.go function main (line 11) | func main() { function Ping (line 40) | func Ping(w http.ResponseWriter, r *http.Request) { FILE: _examples/todos-resource/main.go function main (line 14) | func main() { FILE: _examples/todos-resource/todos.go type todosResource (line 9) | type todosResource struct method Routes (line 12) | func (rs todosResource) Routes() chi.Router { method List (line 31) | func (rs todosResource) List(w http.ResponseWriter, r *http.Request) { method Create (line 35) | func (rs todosResource) Create(w http.ResponseWriter, r *http.Request) { method Get (line 39) | func (rs todosResource) Get(w http.ResponseWriter, r *http.Request) { method Update (line 43) | func (rs todosResource) Update(w http.ResponseWriter, r *http.Request) { method Delete (line 47) | func (rs todosResource) Delete(w http.ResponseWriter, r *http.Request) { method Sync (line 51) | func (rs todosResource) Sync(w http.ResponseWriter, r *http.Request) { FILE: _examples/todos-resource/users.go type usersResource (line 9) | type usersResource struct method Routes (line 12) | func (rs usersResource) Routes() chi.Router { method List (line 30) | func (rs usersResource) List(w http.ResponseWriter, r *http.Request) { method Create (line 34) | func (rs usersResource) Create(w http.ResponseWriter, r *http.Request) { method Get (line 38) | func (rs usersResource) Get(w http.ResponseWriter, r *http.Request) { method Update (line 42) | func (rs usersResource) Update(w http.ResponseWriter, r *http.Request) { method Delete (line 46) | func (rs usersResource) Delete(w http.ResponseWriter, r *http.Request) { FILE: _examples/versions/data/article.go type Article (line 4) | type Article struct FILE: _examples/versions/data/errors.go function PresentError (line 16) | func PresentError(r *http.Request, err error) (*http.Request, interface{... FILE: _examples/versions/main.go function main (line 22) | func main() { function apiVersionCtx (line 51) | func apiVersionCtx(version string) func(next http.Handler) http.Handler { function articleRouter (line 60) | func articleRouter() http.Handler { function listArticles (line 71) | func listArticles(w http.ResponseWriter, r *http.Request) { function getArticle (line 103) | func getArticle(w http.ResponseWriter, r *http.Request) { function randomErrorMiddleware (line 142) | func randomErrorMiddleware(next http.Handler) http.Handler { FILE: _examples/versions/presenter/v1/article.go type Article (line 10) | type Article struct method Render (line 16) | func (a *Article) Render(w http.ResponseWriter, r *http.Request) error { function NewArticleResponse (line 20) | func NewArticleResponse(article *data.Article) *Article { FILE: _examples/versions/presenter/v2/article.go type Article (line 11) | type Article struct method Render (line 23) | func (a *Article) Render(w http.ResponseWriter, r *http.Request) error { function NewArticleResponse (line 28) | func NewArticleResponse(article *data.Article) *Article { FILE: _examples/versions/presenter/v3/article.go type Article (line 12) | type Article struct method Render (line 25) | func (a *Article) Render(w http.ResponseWriter, r *http.Request) error { function NewArticleResponse (line 37) | func NewArticleResponse(article *data.Article) *Article { FILE: chain.go function Chain (line 6) | func Chain(middlewares ...func(http.Handler) http.Handler) Middlewares { method Handler (line 12) | func (mws Middlewares) Handler(h http.Handler) http.Handler { method HandlerFunc (line 18) | func (mws Middlewares) HandlerFunc(h http.HandlerFunc) http.Handler { type ChainHandler (line 24) | type ChainHandler struct method ServeHTTP (line 30) | func (c *ChainHandler) ServeHTTP(w http.ResponseWriter, r *http.Reques... function chain (line 36) | func chain(middlewares []func(http.Handler) http.Handler, endpoint http.... FILE: chi.go function NewRouter (line 60) | func NewRouter() *Mux { type Router (line 66) | type Router interface type Routes (line 118) | type Routes interface type Middlewares (line 137) | type Middlewares FILE: context.go function URLParam (line 10) | func URLParam(r *http.Request, key string) string { function URLParamFromCtx (line 18) | func URLParamFromCtx(ctx context.Context, key string) string { function RouteContext (line 27) | func RouteContext(ctx context.Context) *Context { function NewRouteContext (line 33) | func NewRouteContext() *Context { type Context (line 45) | type Context struct method Reset (line 82) | func (x *Context) Reset() { method URLParam (line 100) | func (x *Context) URLParam(key string) string { method RoutePattern (line 123) | func (x *Context) RoutePattern() string { function replaceWildcards (line 139) | func replaceWildcards(p string) string { type RouteParams (line 147) | type RouteParams struct method Add (line 152) | func (s *RouteParams) Add(key, value string) { type contextKey (line 160) | type contextKey struct method String (line 164) | func (k *contextKey) String() string { FILE: context_test.go function TestRoutePattern (line 24) | func TestRoutePattern(t *testing.T) { function TestReplaceWildcardsConsecutive (line 97) | func TestReplaceWildcardsConsecutive(t *testing.T) { FILE: middleware/basic_auth.go function BasicAuth (line 10) | func BasicAuth(realm string, creds map[string]string) func(next http.Han... function basicAuthFailed (line 30) | func basicAuthFailed(w http.ResponseWriter, realm string) { FILE: middleware/clean_path.go function CleanPath (line 12) | func CleanPath(next http.Handler) http.Handler { FILE: middleware/compress.go function Compress (line 40) | func Compress(level int, types ...string) func(next http.Handler) http.H... type Compressor (line 46) | type Compressor struct method SetEncoder (line 147) | func (c *Compressor) SetEncoder(encoding string, fn EncoderFunc) { method Handler (line 187) | func (c *Compressor) Handler(next http.Handler) http.Handler { method selectEncoder (line 211) | func (c *Compressor) selectEncoder(h http.Header, w io.Writer) (io.Wri... function NewCompressor (line 63) | func NewCompressor(level int, types ...string) *Compressor { function matchAcceptEncoding (line 240) | func matchAcceptEncoding(accepted []string, encoding string) bool { type EncoderFunc (line 253) | type EncoderFunc type ioResetterWriter (line 256) | type ioResetterWriter interface type compressResponseWriter (line 261) | type compressResponseWriter struct method isCompressible (line 274) | func (cw *compressResponseWriter) isCompressible() bool { method WriteHeader (line 290) | func (cw *compressResponseWriter) WriteHeader(code int) { method Write (line 318) | func (cw *compressResponseWriter) Write(p []byte) (int, error) { method writer (line 326) | func (cw *compressResponseWriter) writer() io.Writer { method Flush (line 337) | func (cw *compressResponseWriter) Flush() { method Hijack (line 353) | func (cw *compressResponseWriter) Hijack() (net.Conn, *bufio.ReadWrite... method Push (line 360) | func (cw *compressResponseWriter) Push(target string, opts *http.PushO... method Close (line 367) | func (cw *compressResponseWriter) Close() error { method Unwrap (line 374) | func (cw *compressResponseWriter) Unwrap() http.ResponseWriter { type compressFlusher (line 333) | type compressFlusher interface function encoderGzip (line 378) | func encoderGzip(w io.Writer, level int) io.Writer { function encoderDeflate (line 386) | func encoderDeflate(w io.Writer, level int) io.Writer { FILE: middleware/compress_test.go function TestCompressor (line 16) | func TestCompressor(t *testing.T) { function TestCompressorWildcards (line 112) | func TestCompressorWildcards(t *testing.T) { function testRequestWithAcceptedEncodings (line 172) | func testRequestWithAcceptedEncodings(t *testing.T, ts *httptest.Server,... function decodeResponseBody (line 195) | func decodeResponseBody(t *testing.T, resp *http.Response) string { FILE: middleware/content_charset.go function ContentCharset (line 11) | func ContentCharset(charsets ...string) func(next http.Handler) http.Han... function contentEncoding (line 29) | func contentEncoding(ce string, charsets ...string) bool { function split (line 37) | func split(str, sep string) (string, string) { FILE: middleware/content_charset_test.go function TestContentCharset (line 11) | func TestContentCharset(t *testing.T) { function TestSplit (line 94) | func TestSplit(t *testing.T) { function TestContentEncoding (line 113) | func TestContentEncoding(t *testing.T) { FILE: middleware/content_encoding.go function AllowContentEncoding (line 10) | func AllowContentEncoding(contentEncoding ...string) func(next http.Hand... FILE: middleware/content_encoding_test.go function TestContentEncodingMiddleware (line 12) | func TestContentEncodingMiddleware(t *testing.T) { FILE: middleware/content_type.go function SetHeader (line 9) | func SetHeader(key, value string) func(http.Handler) http.Handler { function AllowContentType (line 20) | func AllowContentType(contentTypes ...string) func(http.Handler) http.Ha... FILE: middleware/content_type_test.go function TestContentType (line 12) | func TestContentType(t *testing.T) { FILE: middleware/get_head.go function GetHead (line 10) | func GetHead(next http.Handler) http.Handler { FILE: middleware/get_head_test.go function TestGetHead (line 11) | func TestGetHead(t *testing.T) { FILE: middleware/heartbeat.go function Heartbeat (line 12) | func Heartbeat(endpoint string) func(http.Handler) http.Handler { FILE: middleware/logger.go function Logger (line 39) | func Logger(next http.Handler) http.Handler { function RequestLogger (line 44) | func RequestLogger(f LogFormatter) func(next http.Handler) http.Handler { type LogFormatter (line 63) | type LogFormatter interface type LogEntry (line 69) | type LogEntry interface function GetLogEntry (line 75) | func GetLogEntry(r *http.Request) LogEntry { function WithLogEntry (line 81) | func WithLogEntry(r *http.Request, entry LogEntry) *http.Request { type LoggerInterface (line 87) | type LoggerInterface interface type DefaultLogFormatter (line 92) | type DefaultLogFormatter struct method NewLogEntry (line 98) | func (l *DefaultLogFormatter) NewLogEntry(r *http.Request) LogEntry { type defaultLogEntry (line 127) | type defaultLogEntry struct method Write (line 134) | func (l *defaultLogEntry) Write(status, bytes int, header http.Header,... method Panic (line 162) | func (l *defaultLogEntry) Panic(v interface{}, stack []byte) { function init (line 166) | func init() { FILE: middleware/logger_test.go type testLoggerWriter (line 13) | type testLoggerWriter struct method Hijack (line 17) | func (cw testLoggerWriter) Hijack() (net.Conn, *bufio.ReadWriter, erro... function TestRequestLogger (line 21) | func TestRequestLogger(t *testing.T) { function TestRequestLoggerReadFrom (line 38) | func TestRequestLoggerReadFrom(t *testing.T) { FILE: middleware/maybe.go function Maybe (line 8) | func Maybe(mw func(http.Handler) http.Handler, maybeFn func(r *http.Requ... FILE: middleware/middleware.go function New (line 6) | func New(h http.Handler) func(next http.Handler) http.Handler { type contextKey (line 17) | type contextKey struct method String (line 21) | func (k *contextKey) String() string { FILE: middleware/middleware_test.go function init (line 17) | func init() { function TestWrapWriterHTTP2 (line 22) | func TestWrapWriterHTTP2(t *testing.T) { function testRequest (line 82) | func testRequest(t *testing.T, ts *httptest.Server, method, path string,... function testRequestNoRedirect (line 105) | func testRequestNoRedirect(t *testing.T, ts *httptest.Server, method, pa... function assertNoError (line 135) | func assertNoError(t *testing.T, err error) { function assertError (line 142) | func assertError(t *testing.T, err error) { function assertEqual (line 149) | func assertEqual(t *testing.T, a, b interface{}) { FILE: middleware/nocache.go function NoCache (line 40) | func NoCache(h http.Handler) http.Handler { FILE: middleware/page_route.go function PageRoute (line 10) | func PageRoute(path string, handler http.Handler) func(http.Handler) htt... FILE: middleware/path_rewrite.go function PathRewrite (line 9) | func PathRewrite(old, new string) func(http.Handler) http.Handler { FILE: middleware/profiler.go function Profiler (line 23) | func Profiler() http.Handler { FILE: middleware/realip.go function RealIP (line 31) | func RealIP(h http.Handler) http.Handler { function realIP (line 42) | func realIP(r *http.Request) string { FILE: middleware/realip_test.go function TestXRealIP (line 11) | func TestXRealIP(t *testing.T) { function TestXForwardForIP (line 35) | func TestXForwardForIP(t *testing.T) { function TestXForwardForXRealIPPrecedence (line 68) | func TestXForwardForXRealIPPrecedence(t *testing.T) { function TestInvalidIP (line 93) | func TestInvalidIP(t *testing.T) { FILE: middleware/recoverer.go function Recoverer (line 22) | func Recoverer(next http.Handler) http.Handler { function PrintPrettyStack (line 54) | func PrintPrettyStack(rvr interface{}) { type prettyStack (line 66) | type prettyStack struct method parse (line 69) | func (s prettyStack) parse(debugStack []byte, rvr interface{}) ([]byte... method decorateLine (line 112) | func (s prettyStack) decorateLine(line string, useColor bool, num int)... method decorateFuncCallLine (line 126) | func (s prettyStack) decorateFuncCallLine(line string, useColor bool, ... method decorateSourceLine (line 166) | func (s prettyStack) decorateSourceLine(line string, useColor bool, nu... FILE: middleware/recoverer_test.go function panickingHandler (line 13) | func panickingHandler(http.ResponseWriter, *http.Request) { panic("foo") } function TestRecoverer (line 15) | func TestRecoverer(t *testing.T) { function TestRecovererAbortHandler (line 44) | func TestRecovererAbortHandler(t *testing.T) { FILE: middleware/request_id.go type ctxKeyRequestID (line 18) | type ctxKeyRequestID constant RequestIDKey (line 21) | RequestIDKey ctxKeyRequestID = 0 function init (line 46) | func init() { function RequestID (line 67) | func RequestID(next http.Handler) http.Handler { function GetReqID (line 83) | func GetReqID(ctx context.Context) string { function NextRequestID (line 94) | func NextRequestID() uint64 { FILE: middleware/request_id_test.go function maintainDefaultRequestID (line 12) | func maintainDefaultRequestID() func() { function TestRequestID (line 20) | func TestRequestID(t *testing.T) { FILE: middleware/request_size.go function RequestSize (line 9) | func RequestSize(bytes int64) func(http.Handler) http.Handler { FILE: middleware/route_headers.go function RouteHeaders (line 42) | func RouteHeaders() HeaderRouter { type HeaderRouter (line 46) | type HeaderRouter method Route (line 48) | func (hr HeaderRouter) Route(header, match string, middlewareHandler f... method RouteAny (line 58) | func (hr HeaderRouter) RouteAny(header string, match []string, middlew... method RouteDefault (line 72) | func (hr HeaderRouter) RouteDefault(handler func(next http.Handler) ht... method Handler (line 77) | func (hr HeaderRouter) Handler(next http.Handler) http.Handler { type HeaderRoute (line 110) | type HeaderRoute struct method IsMatch (line 116) | func (r HeaderRoute) IsMatch(value string) bool { type Pattern (line 129) | type Pattern struct method Match (line 141) | func (p Pattern) Match(v string) bool { function NewPattern (line 135) | func NewPattern(value string) Pattern { FILE: middleware/route_headers_test.go function TestRouteHeaders (line 10) | func TestRouteHeaders(t *testing.T) { function TestPattern (line 187) | func TestPattern(t *testing.T) { FILE: middleware/strip.go function StripSlashes (line 14) | func StripSlashes(next http.Handler) http.Handler { function RedirectSlashes (line 41) | func RedirectSlashes(next http.Handler) http.Handler { function StripPrefix (line 73) | func StripPrefix(prefix string) func(http.Handler) http.Handler { FILE: middleware/strip_test.go function TestStripSlashes (line 13) | func TestStripSlashes(t *testing.T) { function TestStripSlashesInRoute (line 56) | func TestStripSlashesInRoute(t *testing.T) { function TestRedirectSlashes (line 102) | func TestRedirectSlashes(t *testing.T) { function TestStripSlashesWithNilContext (line 203) | func TestStripSlashesWithNilContext(t *testing.T) { function TestStripPrefix (line 241) | func TestStripPrefix(t *testing.T) { function TestRedirectSlashes_PreventBackslashRelativeOpenRedirect (line 276) | func TestRedirectSlashes_PreventBackslashRelativeOpenRedirect(t *testing... FILE: middleware/sunset.go function Sunset (line 11) | func Sunset(sunsetAt time.Time, links ...string) func(http.Handler) http... FILE: middleware/sunset_test.go function TestSunset (line 12) | func TestSunset(t *testing.T) { FILE: middleware/supress_notfound.go function SupressNotFound (line 15) | func SupressNotFound(router *chi.Mux) func(next http.Handler) http.Handl... FILE: middleware/terminal.go function init (line 37) | func init() { function cW (line 55) | func cW(w io.Writer, useColor bool, color []byte, s string, args ...inte... FILE: middleware/throttle.go constant errCapacityExceeded (line 10) | errCapacityExceeded = "Server capacity exceeded." constant errTimedOut (line 11) | errTimedOut = "Timed out while waiting for a pending request to ... constant errContextCanceled (line 12) | errContextCanceled = "Context was canceled." type ThrottleOpts (line 20) | type ThrottleOpts struct function Throttle (line 32) | func Throttle(limit int) func(http.Handler) http.Handler { function ThrottleBacklog (line 39) | func ThrottleBacklog(limit, backlogLimit int, backlogTimeout time.Durati... function ThrottleWithOpts (line 44) | func ThrottleWithOpts(opts ThrottleOpts) func(http.Handler) http.Handler { type token (line 134) | type token struct type throttler (line 137) | type throttler struct method setRetryAfterHeaderIfNeeded (line 146) | func (t throttler) setRetryAfterHeaderIfNeeded(w http.ResponseWriter, ... FILE: middleware/throttle_test.go function TestThrottleBacklog (line 17) | func TestThrottleBacklog(t *testing.T) { function TestThrottleClientTimeout (line 58) | func TestThrottleClientTimeout(t *testing.T) { function TestThrottleTriggerGatewayTimeout (line 90) | func TestThrottleTriggerGatewayTimeout(t *testing.T) { function TestThrottleMaximum (line 144) | func TestThrottleMaximum(t *testing.T) { function TestThrottleRetryAfter (line 202) | func TestThrottleRetryAfter(t *testing.T) { function TestThrottleCustomStatusCode (line 264) | func TestThrottleCustomStatusCode(t *testing.T) { function BenchmarkThrottle (line 315) | func BenchmarkThrottle(b *testing.B) { FILE: middleware/timeout.go function Timeout (line 32) | func Timeout(timeout time.Duration) func(next http.Handler) http.Handler { FILE: middleware/url_format.go function URLFormat (line 46) | func URLFormat(next http.Handler) http.Handler { FILE: middleware/url_format_test.go function TestURLFormat (line 11) | func TestURLFormat(t *testing.T) { function TestURLFormatInSubRouter (line 52) | func TestURLFormatInSubRouter(t *testing.T) { FILE: middleware/value.go function WithValue (line 9) | func WithValue(key, val interface{}) func(next http.Handler) http.Handler { FILE: middleware/wrap_writer.go function NewWrapResponseWriter (line 15) | func NewWrapResponseWriter(w http.ResponseWriter, protoMajor int) WrapRe... type WrapResponseWriter (line 48) | type WrapResponseWriter interface type basicWriter (line 73) | type basicWriter struct method WriteHeader (line 82) | func (b *basicWriter) WriteHeader(code int) { method Write (line 96) | func (b *basicWriter) Write(buf []byte) (n int, err error) { method maybeWriteHeader (line 116) | func (b *basicWriter) maybeWriteHeader() { method Status (line 122) | func (b *basicWriter) Status() int { method BytesWritten (line 126) | func (b *basicWriter) BytesWritten() int { method Tee (line 130) | func (b *basicWriter) Tee(w io.Writer) { method Unwrap (line 134) | func (b *basicWriter) Unwrap() http.ResponseWriter { method Discard (line 138) | func (b *basicWriter) Discard() { type flushWriter (line 143) | type flushWriter struct method Flush (line 147) | func (f *flushWriter) Flush() { type hijackWriter (line 156) | type hijackWriter struct method Hijack (line 160) | func (f *hijackWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) { type flushHijackWriter (line 168) | type flushHijackWriter struct method Flush (line 172) | func (f *flushHijackWriter) Flush() { method Hijack (line 178) | func (f *flushHijackWriter) Hijack() (net.Conn, *bufio.ReadWriter, err... type httpFancyWriter (line 190) | type httpFancyWriter struct method Flush (line 194) | func (f *httpFancyWriter) Flush() { method Hijack (line 200) | func (f *httpFancyWriter) Hijack() (net.Conn, *bufio.ReadWriter, error) { method ReadFrom (line 209) | func (f *httpFancyWriter) ReadFrom(r io.Reader) (int64, error) { type http2FancyWriter (line 231) | type http2FancyWriter struct method Push (line 205) | func (f *http2FancyWriter) Push(target string, opts *http.PushOptions)... method Flush (line 235) | func (f *http2FancyWriter) Flush() { FILE: middleware/wrap_writer_test.go function TestHttpFancyWriterRemembersWroteHeaderWhenFlushed (line 10) | func TestHttpFancyWriterRemembersWroteHeaderWhenFlushed(t *testing.T) { function TestHttp2FancyWriterRemembersWroteHeaderWhenFlushed (line 19) | func TestHttp2FancyWriterRemembersWroteHeaderWhenFlushed(t *testing.T) { function TestBasicWritesTeesWritesWithoutDiscard (line 28) | func TestBasicWritesTeesWritesWithoutDiscard(t *testing.T) { function TestBasicWriterDiscardsWritesToOriginalResponseWriter (line 48) | func TestBasicWriterDiscardsWritesToOriginalResponseWriter(t *testing.T) { FILE: mux.go type Mux (line 21) | type Mux struct method ServeHTTP (line 63) | func (mx *Mux) ServeHTTP(w http.ResponseWriter, r *http.Request) { method Use (line 100) | func (mx *Mux) Use(middlewares ...func(http.Handler) http.Handler) { method Handle (line 109) | func (mx *Mux) Handle(pattern string, handler http.Handler) { method HandleFunc (line 121) | func (mx *Mux) HandleFunc(pattern string, handlerFn http.HandlerFunc) { method Method (line 127) | func (mx *Mux) Method(method, pattern string, handler http.Handler) { method MethodFunc (line 137) | func (mx *Mux) MethodFunc(method, pattern string, handlerFn http.Handl... method Connect (line 143) | func (mx *Mux) Connect(pattern string, handlerFn http.HandlerFunc) { method Delete (line 149) | func (mx *Mux) Delete(pattern string, handlerFn http.HandlerFunc) { method Get (line 155) | func (mx *Mux) Get(pattern string, handlerFn http.HandlerFunc) { method Head (line 161) | func (mx *Mux) Head(pattern string, handlerFn http.HandlerFunc) { method Options (line 167) | func (mx *Mux) Options(pattern string, handlerFn http.HandlerFunc) { method Patch (line 173) | func (mx *Mux) Patch(pattern string, handlerFn http.HandlerFunc) { method Post (line 179) | func (mx *Mux) Post(pattern string, handlerFn http.HandlerFunc) { method Put (line 185) | func (mx *Mux) Put(pattern string, handlerFn http.HandlerFunc) { method Trace (line 191) | func (mx *Mux) Trace(pattern string, handlerFn http.HandlerFunc) { method NotFound (line 197) | func (mx *Mux) NotFound(handlerFn http.HandlerFunc) { method MethodNotAllowed (line 217) | func (mx *Mux) MethodNotAllowed(handlerFn http.HandlerFunc) { method With (line 236) | func (mx *Mux) With(middlewares ...func(http.Handler) http.Handler) Ro... method Group (line 262) | func (mx *Mux) Group(fn func(r Router)) Router { method Route (line 272) | func (mx *Mux) Route(pattern string, fn func(r Router)) Router { method Mount (line 289) | func (mx *Mux) Mount(pattern string, handler http.Handler) { method Routes (line 344) | func (mx *Mux) Routes() []Route { method Middlewares (line 349) | func (mx *Mux) Middlewares() Middlewares { method Match (line 359) | func (mx *Mux) Match(rctx *Context, method, path string) bool { method Find (line 368) | func (mx *Mux) Find(rctx *Context, method, path string) string { method NotFoundHandler (line 398) | func (mx *Mux) NotFoundHandler() http.HandlerFunc { method MethodNotAllowedHandler (line 407) | func (mx *Mux) MethodNotAllowedHandler(methodsAllowed ...methodTyp) ht... method handle (line 416) | func (mx *Mux) handle(method methodTyp, pattern string, handler http.H... method routeHTTP (line 441) | func (mx *Mux) routeHTTP(w http.ResponseWriter, r *http.Request) { method nextRoutePath (line 487) | func (mx *Mux) nextRoutePath(rctx *Context) string { method updateSubRoutes (line 497) | func (mx *Mux) updateSubRoutes(fn func(subMux *Mux)) { method updateRouteHandler (line 511) | func (mx *Mux) updateRouteHandler() { function NewMux (line 52) | func NewMux() *Mux { function methodNotAllowedHandler (line 518) | func methodNotAllowedHandler(methodsAllowed ...methodTyp) func(w http.Re... FILE: mux_test.go function TestMuxBasic (line 16) | func TestMuxBasic(t *testing.T) { function TestMuxMounts (line 208) | func TestMuxMounts(t *testing.T) { function TestMuxPlain (line 245) | func TestMuxPlain(t *testing.T) { function TestMuxEmptyRoutes (line 266) | func TestMuxEmptyRoutes(t *testing.T) { function TestMuxTrailingSlash (line 285) | func TestMuxTrailingSlash(t *testing.T) { function TestMuxNestedNotFound (line 316) | func TestMuxNestedNotFound(t *testing.T) { function TestMethodNotAllowed (line 394) | func TestMethodNotAllowed(t *testing.T) { function TestMuxNestedMethodNotAllowed (line 431) | func TestMuxNestedMethodNotAllowed(t *testing.T) { function TestMuxComplicatedNotFound (line 497) | func TestMuxComplicatedNotFound(t *testing.T) { function TestMuxWith (line 589) | func TestMuxWith(t *testing.T) { function TestMuxHandlePatternValidation (line 642) | func TestMuxHandlePatternValidation(t *testing.T) { function TestRouterFromMuxWith (line 734) | func TestRouterFromMuxWith(t *testing.T) { function TestMuxMiddlewareStack (line 754) | func TestMuxMiddlewareStack(t *testing.T) { function TestMuxRouteGroups (line 829) | func TestMuxRouteGroups(t *testing.T) { function TestMuxBig (line 885) | func TestMuxBig(t *testing.T) { function bigMux (line 956) | func bigMux() Router { function TestMuxSubroutesBasic (line 1096) | func TestMuxSubroutesBasic(t *testing.T) { function TestMuxSubroutes (line 1177) | func TestMuxSubroutes(t *testing.T) { function TestSingleHandler (line 1292) | func TestSingleHandler(t *testing.T) { function TestServeHTTPExistingContext (line 1336) | func TestServeHTTPExistingContext(t *testing.T) { function TestNestedGroups (line 1392) | func TestNestedGroups(t *testing.T) { function TestMiddlewarePanicOnLateUse (line 1448) | func TestMiddlewarePanicOnLateUse(t *testing.T) { function TestMountingExistingPath (line 1470) | func TestMountingExistingPath(t *testing.T) { function TestMountingSimilarPattern (line 1485) | func TestMountingSimilarPattern(t *testing.T) { function TestMuxEmptyParams (line 1512) | func TestMuxEmptyParams(t *testing.T) { function TestMuxMissingParams (line 1532) | func TestMuxMissingParams(t *testing.T) { function TestMuxWildcardRoute (line 1554) | func TestMuxWildcardRoute(t *testing.T) { function TestMuxWildcardRouteCheckTwo (line 1567) | func TestMuxWildcardRouteCheckTwo(t *testing.T) { function TestMuxRegexp (line 1580) | func TestMuxRegexp(t *testing.T) { function TestMuxRegexp2 (line 1596) | func TestMuxRegexp2(t *testing.T) { function TestMuxRegexp3 (line 1612) | func TestMuxRegexp3(t *testing.T) { function TestMuxSubrouterWildcardParam (line 1653) | func TestMuxSubrouterWildcardParam(t *testing.T) { function TestMuxContextIsThreadSafe (line 1685) | func TestMuxContextIsThreadSafe(t *testing.T) { function TestEscapedURLParams (line 1721) | func TestEscapedURLParams(t *testing.T) { function TestCustomHTTPMethod (line 1761) | func TestCustomHTTPMethod(t *testing.T) { function TestMuxMatch (line 1807) | func TestMuxMatch(t *testing.T) { function TestMuxMatch_HasBasePath (line 1845) | func TestMuxMatch_HasBasePath(t *testing.T) { function TestMuxMatch_DoesNotHaveBasePath (line 1860) | func TestMuxMatch_DoesNotHaveBasePath(t *testing.T) { function TestMuxFind (line 1871) | func TestMuxFind(t *testing.T) { function TestServerBaseContext (line 1955) | func TestServerBaseContext(t *testing.T) { function testRequest (line 1983) | func testRequest(t *testing.T, ts *httptest.Server, method, path string,... function testHandler (line 2006) | func testHandler(t *testing.T, h http.Handler, method, path string, body... type ctxKey (line 2013) | type ctxKey struct method String (line 2017) | func (k ctxKey) String() string { function BenchmarkMux (line 2021) | func BenchmarkMux(b *testing.B) { FILE: path_value_test.go function TestPathValue (line 10) | func TestPathValue(t *testing.T) { FILE: pattern_test.go function TestPattern (line 12) | func TestPattern(t *testing.T) { FILE: tree.go type methodTyp (line 17) | type methodTyp constant mSTUB (line 20) | mSTUB methodTyp = 1 << iota constant mCONNECT (line 21) | mCONNECT constant mDELETE (line 22) | mDELETE constant mGET (line 23) | mGET constant mHEAD (line 24) | mHEAD constant mOPTIONS (line 25) | mOPTIONS constant mPATCH (line 26) | mPATCH constant mPOST (line 27) | mPOST constant mPUT (line 28) | mPUT constant mTRACE (line 29) | mTRACE function RegisterMethod (line 61) | func RegisterMethod(method string) { type nodeTyp (line 79) | type nodeTyp constant ntStatic (line 82) | ntStatic nodeTyp = iota constant ntRegexp (line 83) | ntRegexp constant ntParam (line 84) | ntParam constant ntCatchAll (line 85) | ntCatchAll type node (line 88) | type node struct method InsertRoute (line 139) | func (n *node) InsertRoute(method methodTyp, pattern string, handler h... method addChild (line 235) | func (n *node) addChild(child *node, prefix string) *node { method replaceChild (line 319) | func (n *node) replaceChild(label, tail byte, child *node) { method getEdge (line 331) | func (n *node) getEdge(ntyp nodeTyp, label, tail byte, prefix string) ... method setEndpoint (line 344) | func (n *node) setEndpoint(method methodTyp, handler http.Handler, pat... method FindRoute (line 374) | func (n *node) FindRoute(rctx *Context, method methodTyp, path string)... method findRoute (line 401) | func (n *node) findRoute(rctx *Context, method methodTyp, path string)... method findEdge (line 546) | func (n *node) findEdge(ntyp nodeTyp, label byte) *node { method isLeaf (line 574) | func (n *node) isLeaf() bool { method findPattern (line 578) | func (n *node) findPattern(pattern string) bool { method routes (line 620) | func (n *node) routes() []Route { method walk (line 668) | func (n *node) walk(fn func(eps endpoints, subroutes Routes) bool) bool { type endpoints (line 117) | type endpoints method Value (line 130) | func (s endpoints) Value(method methodTyp) *endpoint { type endpoint (line 119) | type endpoint struct function patNextSegment (line 687) | func patNextSegment(pattern string) (nodeTyp, string, string, byte, int,... function patParamKeys (line 755) | func patParamKeys(pattern string) []string { function longestPrefix (line 774) | func longestPrefix(k1, k2 string) (i int) { type nodes (line 783) | type nodes method Sort (line 786) | func (ns nodes) Sort() { sort.Sort(ns); ns.tailSort() } method Len (line 787) | func (ns nodes) Len() int { return len(ns) } method Swap (line 788) | func (ns nodes) Swap(i, j int) { ns[i], ns[j] = ns[j], ns[i] } method Less (line 789) | func (ns nodes) Less(i, j int) bool { return ns[i].label < ns[j].label } method tailSort (line 793) | func (ns nodes) tailSort() { method findEdge (line 802) | func (ns nodes) findEdge(label byte) *node { type Route (line 824) | type Route struct type WalkFunc (line 831) | type WalkFunc function Walk (line 834) | func Walk(r Routes, walkFn WalkFunc) error { function walk (line 838) | func walk(r Routes, walkFn WalkFunc, parentRoute string, parentMw ...fun... FILE: tree_test.go function TestTree (line 10) | func TestTree(t *testing.T) { function TestTreeMoar (line 154) | func TestTreeMoar(t *testing.T) { function TestTreeRegexp (line 270) | func TestTreeRegexp(t *testing.T) { function TestTreeRegexpRecursive (line 336) | func TestTreeRegexpRecursive(t *testing.T) { function TestTreeRegexMatchWholeParam (line 387) | func TestTreeRegexMatchWholeParam(t *testing.T) { function TestTreeFindPattern (line 417) | func TestTreeFindPattern(t *testing.T) { function debugPrintTree (line 447) | func debugPrintTree(parent int, i int, n *node, label byte) bool { function stringSliceEqual (line 475) | func stringSliceEqual(a, b []string) bool { function BenchmarkTreeGet (line 487) | func BenchmarkTreeGet(b *testing.B) { function TestWalker (line 512) | func TestWalker(t *testing.T) { function TestWalkInlineMiddlewaresAcrossSubrouter (line 525) | func TestWalkInlineMiddlewaresAcrossSubrouter(t *testing.T) {