1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-12-22 18:17:52 -05:00
v2fly/common/protocol/context.go

26 lines
461 B
Go
Raw Normal View History

package protocol
import (
"context"
)
type key int
const (
userKey key = iota
)
2017-08-22 09:15:09 -04:00
// ContextWithUser returns a context combined with an User.
func ContextWithUser(ctx context.Context, user *User) context.Context {
return context.WithValue(ctx, userKey, user)
}
2017-08-22 09:15:09 -04:00
// UserFromContext extracts an User from the given context, if any.
func UserFromContext(ctx context.Context) *User {
v := ctx.Value(userKey)
if v == nil {
return nil
}
return v.(*User)
}