src

Go monorepo.
git clone git://code.dwrz.net/src
Log | Files | Refs

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 }