You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
373 B
Go
22 lines
373 B
Go
package handler
|
|
|
|
type ContextKey[T any] string
|
|
|
|
type Context map[string]any
|
|
|
|
func GetContextValue[T any](ctx Context, key ContextKey[T]) T {
|
|
value, present := ctx[string(key)]
|
|
if !present {
|
|
var zero T
|
|
return zero
|
|
}
|
|
|
|
typedValue, _ := value.(T)
|
|
|
|
return typedValue
|
|
}
|
|
|
|
func SetContextValue[T any](ctx Context, key ContextKey[T], value T) {
|
|
ctx[string(key)] = value
|
|
}
|