...

Package internal

import "goji.io/internal"
Overview
Index

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.

Variables

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)
)

type ContextKey

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

type ContextKey int