eventstream_middleware.go 439 B

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