broker: add SetPublishOption
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
		| @@ -42,6 +42,16 @@ func SetSubscribeOption(k, v interface{}) SubscribeOption { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // SetPublishOption returns a function to setup a context with given value | ||||
| func SetPublishOption(k, v interface{}) PublishOption { | ||||
| 	return func(o *PublishOptions) { | ||||
| 		if o.Context == nil { | ||||
| 			o.Context = context.Background() | ||||
| 		} | ||||
| 		o.Context = context.WithValue(o.Context, k, v) | ||||
| 	} | ||||
| } | ||||
|  | ||||
| // SetOption returns a function to setup a context with given value | ||||
| func SetOption(k, v interface{}) Option { | ||||
| 	return func(o *Options) { | ||||
|   | ||||
| @@ -79,11 +79,15 @@ type PublishOptions struct { | ||||
| 	// BodyOnly flag says the message contains raw body bytes and don't need | ||||
| 	// codec Marshal method | ||||
| 	BodyOnly bool | ||||
| 	// Context holds custom options | ||||
| 	Context context.Context | ||||
| } | ||||
|  | ||||
| // NewPublishOptions creates PublishOptions struct | ||||
| func NewPublishOptions(opts ...PublishOption) PublishOptions { | ||||
| 	options := PublishOptions{} | ||||
| 	options := PublishOptions{ | ||||
| 		Context: context.Background(), | ||||
| 	} | ||||
| 	for _, o := range opts { | ||||
| 		o(&options) | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user