package kafka import ( "ultone/internal/interfaces" "github.com/segmentio/kafka-go/sasl/plain" ) type OptionFn func(*client) func WithPlainAuth(username, password string) OptionFn { return func(c *client) { c.mechanism = plain.Mechanism{ Username: username, Password: password, } } } func WithTopic(topic string) OptionFn { return func(c *client) { c.topic = topic } } func WithPartition(partition int) OptionFn { return func(c *client) { c.partition = partition } } func WithReconnection() OptionFn { return func(c *client) { c.reconnection = true } } func WithLogger(logger interfaces.Logger) OptionFn { return func(c *client) { c.logger = logger } }