package main import ( "github.com/gorilla/sessions" ) func Must[T any](value T, err error) T { if err != nil { panic(err) } return value } func GetValue[K any, T any](session *sessions.Session, key K) (T, bool) { value, ok := session.Values[key] if !ok && value == nil { return *new(T), false } castedValue, ok := value.(T) if !ok { return *new(T), false } return castedValue, true } func GetValueDefault[K any, T any](session *sessions.Session, key K, defaultValue T) T { v, ok := GetValue[K, T](session, key) if !ok { return defaultValue } return v }