Documentation

Overview

Package internal is a private package that allows Goji to expose a less confusing interface to its users. This package must not be used outside of Goji; every piece of its functionality has been exposed by one of Goji's subpackages.

The problem this package solves is to allow Goji to internally agree on types and secret values between its packages without introducing import cycles. Goji needs to agree on these types and values in order to organize its public API into audience-specific subpackages (for instance, a package for pattern authors, a package for middleware authors, and a main package for routing users) without exposing implementation details in any of the packages.

Index

Constants

This section is empty.

Variables

View Source
var (
	// Path is the context key used to store the path Goji uses for its
	// PathPrefix optimization.
	Path interface{} = ContextKey(0)
	// Pattern is the context key used to store the Pattern that Goji last
	// matched.
	Pattern interface{} = ContextKey(1)
	// Handler is the context key used to store the Handler that Goji last
	// mached (and will therefore dispatch to at the end of the middleware
	// stack).
	Handler interface{} = ContextKey(2)
)

Functions

This section is empty.

Types

type ContextKey

type ContextKey int

ContextKey is a type used for Goji's context.Context keys.

type ContextWrapper

type ContextWrapper struct {
	http.Handler
}

ContextWrapper is a standard bridge type from http.Handlers to context-aware Handlers. It is included here so that the middleware subpackage can use it to unwrap Handlers.

func (ContextWrapper) ServeHTTPC

func (c ContextWrapper) ServeHTTPC(ctx context.Context, w http.ResponseWriter, r *http.Request)

ServeHTTPC implements goji.Handler.