gitee.com/liuxuezhan/go-micro-v1.18.0@v1.0.0/broker/nats/context.go (about)

     1  package nats
     2  
     3  import (
     4  	"context"
     5  
     6  	"gitee.com/liuxuezhan/go-micro-v1.18.0/broker"
     7  )
     8  
     9  // setSubscribeOption returns a function to setup a context with given value
    10  func setSubscribeOption(k, v interface{}) broker.SubscribeOption {
    11  	return func(o *broker.SubscribeOptions) {
    12  		if o.Context == nil {
    13  			o.Context = context.Background()
    14  		}
    15  		o.Context = context.WithValue(o.Context, k, v)
    16  	}
    17  }
    18  
    19  // setBrokerOption returns a function to setup a context with given value
    20  func setBrokerOption(k, v interface{}) broker.Option {
    21  	return func(o *broker.Options) {
    22  		if o.Context == nil {
    23  			o.Context = context.Background()
    24  		}
    25  		o.Context = context.WithValue(o.Context, k, v)
    26  	}
    27  }
    28  
    29  // setPublishOption returns a function to setup a context with given value
    30  func setPublishOption(k, v interface{}) broker.PublishOption {
    31  	return func(o *broker.PublishOptions) {
    32  		if o.Context == nil {
    33  			o.Context = context.Background()
    34  		}
    35  		o.Context = context.WithValue(o.Context, k, v)
    36  	}
    37  }