package nats import ( "github.com/micro/go-micro/broker" nats "github.com/nats-io/nats.go" ) type optionsKey struct{} type drainConnectionKey struct{} type drainSubscriptionKey struct{} // Options accepts nats.Options func Options(opts nats.Options) broker.Option { return setBrokerOption(optionsKey{}, opts) } // DrainConnection will drain subscription on close func DrainConnection() broker.Option { return setBrokerOption(drainConnectionKey{}, true) } // DrainSubscription will drain pending messages when unsubscribe func DrainSubscription() broker.SubscribeOption { return setSubscribeOption(drainSubscriptionKey{}, true) }