Files
ucan/context.go
b5 fff054ea17 refactor: rename UCAN -> Token
When using this package, `ucan.Token` reads better than `ucan.UCAN` to me.
Encourages the reader to think in terms of "tokens", from the "ucan" package.

Performed this refactoring with a  few commands (and a few comment edits):
  $ gofmt -r 'UCAN -> Token' -w .
  $ gofmt -r 'NewAttenuatedUCAN -> NewAttenuatedToken' -w .
  $ gofmt -r 'NewOriginUCAN -> NewOriginToken' -w .
  $ gofmt -r 'UCANParser -> TokenParser' -w .
  $ gofmt -r 'NewUCANParser -> NewTokenParser' -w .
  $ gofmt -r 'UCANCtxKey -> TokenCtxKey' -w .

Changed example test "ExampleWalkthrough" to "Example" to make go vet happy

BREAKING CHANGE:
UCAN symbol is now "Token"
2020-12-04 10:56:03 -05:00

28 lines
642 B
Go

package ucan
import (
"context"
)
// CtxKey defines a distinct type for context keys used by the access
// package
type CtxKey string
// TokenCtxKey is the key for adding an access UCAN to a context.Context
const TokenCtxKey CtxKey = "UCAN"
// CtxWithToken adds a UCAN value to a context
func CtxWithToken(ctx context.Context, t Token) context.Context {
return context.WithValue(ctx, TokenCtxKey, t)
}
// FromCtx extracts a token from a given context if one is set, returning nil
// otherwise
func FromCtx(ctx context.Context) *Token {
iface := ctx.Value(TokenCtxKey)
if ref, ok := iface.(*Token); ok {
return ref
}
return nil
}