| 1234567891011121314151617181920212223242526272829303132333435363738 | 
							- package protocol
 
- import (
 
- 	"context"
 
- )
 
- type key int
 
- const (
 
- 	userKey key = iota
 
- 	requestKey
 
- )
 
- // ContextWithUser returns a context combined with a User.
 
- func ContextWithUser(ctx context.Context, user *MemoryUser) context.Context {
 
- 	return context.WithValue(ctx, userKey, user)
 
- }
 
- // UserFromContext extracts a User from the given context, if any.
 
- func UserFromContext(ctx context.Context) *MemoryUser {
 
- 	v := ctx.Value(userKey)
 
- 	if v == nil {
 
- 		return nil
 
- 	}
 
- 	return v.(*MemoryUser)
 
- }
 
- func ContextWithRequestHeader(ctx context.Context, request *RequestHeader) context.Context {
 
- 	return context.WithValue(ctx, requestKey, request)
 
- }
 
- func RequestHeaderFromContext(ctx context.Context) *RequestHeader {
 
- 	request := ctx.Value(requestKey)
 
- 	if request == nil {
 
- 		return nil
 
- 	}
 
- 	return request.(*RequestHeader)
 
- }
 
 
  |