SYMBOL INDEX (219 symbols across 21 files) FILE: cmd/handlers.go function StaticFilesHandler (line 17) | func StaticFilesHandler(rw http.ResponseWriter, r *http.Request) { function OriginalResponseWriterHandler (line 27) | func OriginalResponseWriterHandler(w http.ResponseWriter, r *http.Reques... function HomeHandler (line 37) | func HomeHandler(w http.ResponseWriter, r *http.Request) { function pushCSS (line 61) | func pushCSS(pusher http.Pusher, r *http.Request, path string) { function pushJS (line 74) | func pushJS(pusher http.Pusher, r *http.Request, path string) { function pushHomepage (line 87) | func pushHomepage(r *http.Request, w http.ResponseWriter) { function SSEHandler (line 110) | func SSEHandler(sse *sse.SSE) http.HandlerFunc { function ErrorSetterHandler (line 123) | func ErrorSetterHandler(w http.ResponseWriter, r *http.Request) { function ParamHandler (line 130) | func ParamHandler(w http.ResponseWriter, r *http.Request) { function InvalidJSONHandler (line 148) | func InvalidJSONHandler(w http.ResponseWriter, r *http.Request) { FILE: cmd/main.go function chain (line 22) | func chain(w http.ResponseWriter, r *http.Request) { function errLogger (line 27) | func errLogger(w http.ResponseWriter, r *http.Request, next http.Handler... function routegroupMiddleware (line 39) | func routegroupMiddleware(w http.ResponseWriter, r *http.Request, next h... function getRoutes (line 44) | func getRoutes(sse *sse.SSE) []*webgo.Route { function setup (line 106) | func setup() (*webgo.Router, *sse.SSE) { function main (line 157) | func main() { FILE: config.go type Config (line 11) | type Config struct method Load (line 42) | func (cfg *Config) Load(filepath string) { method Validate (line 60) | func (cfg *Config) Validate() error { FILE: config_test.go function TestConfig_LoadInvalid (line 9) | func TestConfig_LoadInvalid(t *testing.T) { function TestConfig_LoadValid (line 31) | func TestConfig_LoadValid(t *testing.T) { function TestConfig_Validate (line 46) | func TestConfig_Validate(t *testing.T) { FILE: errors.go type logCfg (line 17) | type logCfg constant LogCfgDisableDebug (line 21) | LogCfgDisableDebug = logCfg("disable-debug") constant LogCfgDisableInfo (line 23) | LogCfgDisableInfo = logCfg("disable-info") constant LogCfgDisableWarn (line 25) | LogCfgDisableWarn = logCfg("disable-warn") constant LogCfgDisableError (line 27) | LogCfgDisableError = logCfg("disable-err") constant LogCfgDisableFatal (line 29) | LogCfgDisableFatal = logCfg("disable-fatal") type Logger (line 33) | type Logger interface type logHandler (line 42) | type logHandler struct method Debug (line 51) | func (lh *logHandler) Debug(data ...interface{}) { method Info (line 59) | func (lh *logHandler) Info(data ...interface{}) { method Warn (line 67) | func (lh *logHandler) Warn(data ...interface{}) { method Error (line 75) | func (lh *logHandler) Error(data ...interface{}) { method Fatal (line 83) | func (lh *logHandler) Fatal(data ...interface{}) { function init (line 93) | func init() { function loggerWithCfg (line 97) | func loggerWithCfg(stdout io.Writer, stderr io.Writer, cfgs ...logCfg) *... function GlobalLoggerConfig (line 135) | func GlobalLoggerConfig(stdout io.Writer, stderr io.Writer, cfgs ...logC... FILE: errors_test.go function Test_loggerWithCfg (line 7) | func Test_loggerWithCfg(t *testing.T) { FILE: extensions/sse/client.go type ClientManager (line 8) | type ClientManager interface type Client (line 23) | type Client struct type eventType (line 30) | type eventType method String (line 40) | func (et eventType) String() string { constant eTypeNewClient (line 33) | eTypeNewClient eventType = iota constant eTypeClientList (line 34) | eTypeClientList constant eTypeRemoveClient (line 35) | eTypeRemoveClient constant eTypeActiveClientCount (line 36) | eTypeActiveClientCount constant eTypeClient (line 37) | eTypeClient type event (line 54) | type event struct type eventResponse (line 60) | type eventResponse struct type Clients (line 65) | type Clients struct method listener (line 71) | func (cs *Clients) listener(events <-chan event) { method New (line 106) | func (cs *Clients) New(ctx context.Context, w http.ResponseWriter, cli... method Range (line 123) | func (cs *Clients) Range(f func(cli *Client)) { method Remove (line 137) | func (cs *Clients) Remove(clientID string) int { method Active (line 150) | func (cs *Clients) Active() int { method Clients (line 157) | func (cs *Clients) Clients() []*Client { method Client (line 168) | func (cs *Clients) Client(clientID string) *Client { function NewClientManager (line 178) | func NewClientManager() ClientManager { FILE: extensions/sse/message.go type Message (line 12) | type Message struct method Bytes (line 26) | func (m *Message) Bytes() []byte { function DefaultUnsupportedMessageHandler (line 48) | func DefaultUnsupportedMessageHandler(w http.ResponseWriter, r *http.Req... FILE: extensions/sse/sse.go type SSE (line 14) | type SSE struct method Handler (line 39) | func (sse *SSE) Handler(w http.ResponseWriter, r *http.Request) error { method HandlerFunc (line 87) | func (sse *SSE) HandlerFunc(w http.ResponseWriter, r *http.Request) { method Broadcast (line 92) | func (sse *SSE) Broadcast(msg Message) { method NewClient (line 98) | func (sse *SSE) NewClient(ctx context.Context, w http.ResponseWriter, ... method ActiveClients (line 104) | func (sse *SSE) ActiveClients() int { method RemoveClient (line 108) | func (sse *SSE) RemoveClient(ctx context.Context, clientID string) { method Client (line 116) | func (sse *SSE) Client(id string) *Client { function DefaultCreateHook (line 120) | func DefaultCreateHook(ctx context.Context, client *Client, count int) {} function DefaultRemoveHook (line 121) | func DefaultRemoveHook(ctx context.Context, clientID string, count int) {} function DefaultOnSend (line 122) | func DefaultOnSend(ctx context.Context, client *Client, err error) {} function DefaultBeforeSend (line 123) | func DefaultBeforeSend(ctx context.Context, client *Client) {} function New (line 125) | func New() *SSE { FILE: middleware/accesslog/accesslog.go function AccessLog (line 17) | func AccessLog(rw http.ResponseWriter, req *http.Request, next http.Hand... FILE: middleware/accesslog/accesslog_test.go function TestAccessLog (line 20) | func TestAccessLog(t *testing.T) { function handler (line 71) | func handler(w http.ResponseWriter, r *http.Request) { function setup (line 75) | func setup(port string) (*webgo.Router, error) { FILE: middleware/cors/cors.go constant headerOrigin (line 23) | headerOrigin = "Access-Control-Allow-Origin" constant headerMethods (line 24) | headerMethods = "Access-Control-Allow-Methods" constant headerCreds (line 25) | headerCreds = "Access-Control-Allow-Credentials" constant headerAllowHeaders (line 26) | headerAllowHeaders = "Access-Control-Allow-Headers" constant headerReqHeaders (line 27) | headerReqHeaders = "Access-Control-Request-Headers" constant headerAccessControlAge (line 28) | headerAccessControlAge = "Access-Control-Max-Age" constant allowHeaders (line 29) | allowHeaders = "Accept,Content-Type,Content-Length,Accept-Enco... function allowedDomains (line 36) | func allowedDomains() []string { function getReqOrigin (line 42) | func getReqOrigin(r *http.Request) string { function allowedOriginsRegex (line 46) | func allowedOriginsRegex(allowedOrigins ...string) []regexp.Regexp { function allowedMethods (line 89) | func allowedMethods(routes []*webgo.Route) string { type Config (line 113) | type Config struct function allowedHeaders (line 120) | func allowedHeaders(headers []string) string { function allowOrigin (line 132) | func allowOrigin(reqOrigin string, allowedOriginRegex []regexp.Regexp) b... function Middleware (line 144) | func Middleware(allowedOriginRegex []regexp.Regexp, corsTimeout, allowed... function AddOptionsHandlers (line 176) | func AddOptionsHandlers(routes []*webgo.Route) []*webgo.Route { function CORS (line 207) | func CORS(cfg *Config) webgo.Middleware { FILE: middleware/cors/cors_test.go function TestCORSEmptyconfig (line 24) | func TestCORSEmptyconfig(t *testing.T) { function TestCORSWithConfig (line 107) | func TestCORSWithConfig(t *testing.T) { function handler (line 211) | func handler(w http.ResponseWriter, r *http.Request) { function getRoutes (line 215) | func getRoutes() []*webgo.Route { function setup (line 225) | func setup(port string, routes []*webgo.Route) (*webgo.Router, error) { FILE: responses.go type ErrorData (line 15) | type ErrorData struct type dOutput (line 21) | type dOutput struct type errOutput (line 27) | type errOutput struct constant HeaderContentType (line 34) | HeaderContentType = "Content-Type" constant JSONContentType (line 36) | JSONContentType = "application/json" constant HTMLContentType (line 38) | HTMLContentType = "text/html; charset=UTF-8" constant ErrInternalServer (line 41) | ErrInternalServer = "Internal server error" function SendHeader (line 45) | func SendHeader(w http.ResponseWriter, rCode int) { function crwAsserter (line 49) | func crwAsserter(w http.ResponseWriter, rCode int) http.ResponseWriter { function Send (line 60) | func Send(w http.ResponseWriter, contentType string, data interface{}, r... function SendResponse (line 72) | func SendResponse(w http.ResponseWriter, data interface{}, rCode int) { function SendError (line 88) | func SendError(w http.ResponseWriter, data interface{}, rCode int) { function Render (line 104) | func Render(w http.ResponseWriter, data interface{}, rCode int, tpl *tem... function R200 (line 119) | func R200(w http.ResponseWriter, data interface{}) { function R201 (line 124) | func R201(w http.ResponseWriter, data interface{}) { function R204 (line 129) | func R204(w http.ResponseWriter) { function R302 (line 134) | func R302(w http.ResponseWriter, data interface{}) { function R400 (line 139) | func R400(w http.ResponseWriter, data interface{}) { function R403 (line 144) | func R403(w http.ResponseWriter, data interface{}) { function R404 (line 149) | func R404(w http.ResponseWriter, data interface{}) { function R406 (line 154) | func R406(w http.ResponseWriter, data interface{}) { function R451 (line 159) | func R451(w http.ResponseWriter, data interface{}) { function R500 (line 164) | func R500(w http.ResponseWriter, data interface{}) { FILE: responses_test.go function TestSendHeader (line 13) | func TestSendHeader(t *testing.T) { function TestSendError (line 23) | func TestSendError(t *testing.T) { function TestSendResponse (line 100) | func TestSendResponse(t *testing.T) { function TestSend (line 176) | func TestSend(t *testing.T) { function TestRender (line 215) | func TestRender(t *testing.T) { function TestResponsehelpers (line 282) | func TestResponsehelpers(t *testing.T) { FILE: route.go type Route (line 11) | type Route struct method parseURIWithParams (line 50) | func (r *Route) parseURIWithParams() { method setupMiddleware (line 88) | func (r *Route) setupMiddleware(reverse bool) { method init (line 111) | func (r *Route) init() error { method matchPath (line 123) | func (r *Route) matchPath(requestURI string) (bool, map[string]string) { method matchWithWildcard (line 140) | func (r *Route) matchWithWildcard(requestURI string) (bool, map[string... method use (line 202) | func (r *Route) use(mm ...Middleware) { type uriFragment (line 43) | type uriFragment struct function routeServeChainedHandlers (line 209) | func routeServeChainedHandlers(r *Route) http.HandlerFunc { function defaultRouteServe (line 226) | func defaultRouteServe(r *Route) http.HandlerFunc { type RouteGroup (line 236) | type RouteGroup struct method Add (line 245) | func (rg *RouteGroup) Add(rr ...Route) { method Use (line 254) | func (rg *RouteGroup) Use(mm ...Middleware) { method Routes (line 260) | func (rg *RouteGroup) Routes() []*Route { function NewRouteGroup (line 264) | func NewRouteGroup(pathPrefix string, skipRouterMiddleware bool, rr ...R... FILE: route_test.go function TestRouteGroupsPathPrefix (line 10) | func TestRouteGroupsPathPrefix(t *testing.T) { function dummyHandler (line 51) | func dummyHandler(w http.ResponseWriter, r *http.Request) {} function BenchmarkMatchWithWildcard (line 53) | func BenchmarkMatchWithWildcard(b *testing.B) { function TestMatchWithWildcard (line 79) | func TestMatchWithWildcard(t *testing.T) { FILE: router.go type httpResponseWriter (line 16) | type httpResponseWriter interface function init (line 23) | func init() { type customResponseWriter (line 62) | type customResponseWriter struct method WriteHeader (line 71) | func (crw *customResponseWriter) WriteHeader(code int) { method Write (line 83) | func (crw *customResponseWriter) Write(body []byte) (int, error) { method Flush (line 90) | func (crw *customResponseWriter) Flush() { method Hijack (line 97) | func (crw *customResponseWriter) Hijack() (net.Conn, *bufio.ReadWriter... method Push (line 105) | func (crw *customResponseWriter) Push(target string, opts *http.PushOp... method reset (line 112) | func (crw *customResponseWriter) reset() { type Middleware (line 120) | type Middleware function discoverRoute (line 123) | func discoverRoute(path string, routes []*Route) (*Route, map[string]str... type Router (line 133) | type Router struct method methodRoutes (line 159) | func (rtr *Router) methodRoutes(method string) (routes []*Route) { method ServeHTTP (line 180) | func (rtr *Router) ServeHTTP(rw http.ResponseWriter, r *http.Request) { method Use (line 223) | func (rtr *Router) Use(mm ...Middleware) { method UseOnSpecialHandlers (line 237) | func (rtr *Router) UseOnSpecialHandlers(mm ...Middleware) { method Add (line 264) | func (rtr *Router) Add(routes ...*Route) { function newCRW (line 293) | func newCRW(rw http.ResponseWriter, rCode int) *customResponseWriter { function releaseCRW (line 300) | func releaseCRW(crw *customResponseWriter) { function newContext (line 305) | func newContext() *ContextPayload { function releaseContext (line 309) | func releaseContext(cp *ContextPayload) { function releasePoolResources (line 314) | func releasePoolResources(crw *customResponseWriter, cp *ContextPayload) { function NewRouter (line 320) | func NewRouter(cfg *Config, routes ...*Route) *Router { function checkDuplicateRoutes (line 335) | func checkDuplicateRoutes(idx int, route *Route, routes []*Route) { function httpHandlers (line 370) | func httpHandlers(routes []*Route) map[string][]*Route { FILE: router_test.go function TestRouter_ServeHTTP (line 16) | func TestRouter_ServeHTTP(t *testing.T) { function setup (line 128) | func setup(t *testing.T, port string) (*Router, error) { function getRoutes (line 142) | func getRoutes(t *testing.T) []*Route { function chainHandler (line 212) | func chainHandler(w http.ResponseWriter, r *http.Request) { function chainNoFallthroughHandler (line 216) | func chainNoFallthroughHandler(w http.ResponseWriter, r *http.Request) { function successHandler (line 221) | func successHandler(w http.ResponseWriter, r *http.Request) { function checkPath (line 233) | func checkPath(req *http.Request, resp *httptest.ResponseRecorder) error { function checkPathWildCard (line 262) | func checkPathWildCard(req *http.Request, resp *httptest.ResponseRecorde... function checkParams (line 302) | func checkParams(req *http.Request, resp *httptest.ResponseRecorder, key... function checkNotImplemented (line 333) | func checkNotImplemented(req *http.Request, resp *httptest.ResponseRecor... function checkNotFound (line 344) | func checkNotFound(req *http.Request, resp *httptest.ResponseRecorder) e... function checkChaining (line 355) | func checkChaining(req *http.Request, resp *httptest.ResponseRecorder) e... function checkMiddleware (line 365) | func checkMiddleware(req *http.Request, resp *httptest.ResponseRecorder)... function testTable (line 375) | func testTable() []struct { type testLogger (line 582) | type testLogger struct method Debug (line 586) | func (tl *testLogger) Debug(data ...interface{}) { method Info (line 589) | func (tl *testLogger) Info(data ...interface{}) { method Warn (line 592) | func (tl *testLogger) Warn(data ...interface{}) { method Error (line 595) | func (tl *testLogger) Error(data ...interface{}) { method Fatal (line 598) | func (tl *testLogger) Fatal(data ...interface{}) { function Test_httpHandlers (line 602) | func Test_httpHandlers(t *testing.T) { function TestWildcardMadness (line 651) | func TestWildcardMadness(t *testing.T) { FILE: webgo.go type ctxkey (line 32) | type ctxkey constant wgoCtxKey (line 34) | wgoCtxKey = ctxkey("webgocontext") type ContextPayload (line 37) | type ContextPayload struct method Params (line 44) | func (cp *ContextPayload) Params() map[string]string { method reset (line 48) | func (cp *ContextPayload) reset() { method SetError (line 54) | func (cp *ContextPayload) SetError(err error) { method Error (line 59) | func (cp *ContextPayload) Error() error { function Context (line 64) | func Context(r *http.Request) *ContextPayload { function SetError (line 69) | func SetError(r *http.Request, err error) { function GetError (line 75) | func GetError(r *http.Request) error { function ResponseStatus (line 81) | func ResponseStatus(rw http.ResponseWriter) int { method setupServer (line 88) | func (router *Router) setupServer() { method SetupMiddleware (line 112) | func (router *Router) SetupMiddleware() { method StartHTTPS (line 122) | func (router *Router) StartHTTPS() { method Start (line 148) | func (router *Router) Start() { method Shutdown (line 166) | func (router *Router) Shutdown() error { method ShutdownHTTPS (line 183) | func (router *Router) ShutdownHTTPS() error { function OriginalResponseWriter (line 201) | func OriginalResponseWriter(rw http.ResponseWriter) http.ResponseWriter { FILE: webgo_test.go function TestResponseStatus (line 23) | func TestResponseStatus(t *testing.T) { function TestStart (line 48) | func TestStart(t *testing.T) { function TestStartHTTPS (line 58) | func TestStartHTTPS(t *testing.T) { function TestErrorHandling (line 69) | func TestErrorHandling(t *testing.T) { function BenchmarkRouter (line 85) | func BenchmarkRouter(b *testing.B) {