eventstream_middleware.go (439B)
1 package middleware 2 3 type eventStreamOutputKey struct{} 4 5 func AddEventStreamOutputToMetadata(metadata *Metadata, output any) { 6 metadata.Set(eventStreamOutputKey{}, output) 7 } 8 9 func GetEventStreamOutputToMetadata[T any](metadata *Metadata) (*T, bool) { 10 val := metadata.Get(eventStreamOutputKey{}) 11 // not found 12 if val == nil { 13 return nil, false 14 } 15 // wrong type 16 res, ok := val.(*T) 17 if !ok { 18 return nil, false 19 } 20 return res, true 21 }