You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
486 B
20 lines
486 B
package session
|
|
|
|
import "context"
|
|
|
|
type contextKeyType struct{ name string }
|
|
|
|
func (ck *contextKeyType) String() string {
|
|
return ck.name
|
|
}
|
|
|
|
var contextKey = &contextKeyType{name: "session context key"}
|
|
|
|
// FromContext gets a session fron the context.
|
|
func FromContext(ctx context.Context) *Session {
|
|
return ctx.Value(contextKey).(*Session)
|
|
}
|
|
|
|
func contextWithSession(parent context.Context, session *Session) context.Context {
|
|
return context.WithValue(parent, contextKey, session)
|
|
}
|