micro-broker-stan/options.go
Vasiliy Tolstov c5fc37933f initial import of stan - nats streaming broker
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
2021-01-10 14:44:01 +03:00

43 lines
1.0 KiB
Go

package stan
import (
"context"
"github.com/micro/go-micro/broker"
stan "github.com/nats-io/go-nats-streaming"
)
type optionsKey struct{}
// Options accepts stan.Options
func Options(opts stan.Options) broker.Option {
return setBrokerOption(optionsKey{}, opts)
}
type clusterIDKey struct{}
// ClusterID specify cluster id to connect
func ClusterID(clusterID string) broker.Option {
return setBrokerOption(clusterIDKey{}, clusterID)
}
type subscribeOptionKey struct{}
func SubscribeOption(opts ...stan.SubscriptionOption) broker.SubscribeOption {
return setSubscribeOption(subscribeOptionKey{}, opts)
}
type subscribeContextKey struct{}
// SubscribeContext set the context for broker.SubscribeOption
func SubscribeContext(ctx context.Context) broker.SubscribeOption {
return setSubscribeOption(subscribeContextKey{}, ctx)
}
type successAutoAckKey struct{}
// SuccessAutoAck allow to AutoAck messages when handler returns without error
func SuccessAutoAck() broker.SubscribeOption {
return setSubscribeOption(successAutoAckKey{}, true)
}