From 2706f585715bbc2023a047f9eb2777a6785726a0 Mon Sep 17 00:00:00 2001 From: "charlie.lin" Date: Sun, 11 Aug 2024 23:07:35 +0800 Subject: [PATCH] refactor(broker): AsyncProducer function to apply options directly within the returned function - Modified AsyncProducer to set `errors` and `successes` channels directly within the returned function instead of returning a separate option function. - Ensures that both channels are properly applied to the `broker.Options` when provided. --- v5/broker/kafka/options.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/v5/broker/kafka/options.go b/v5/broker/kafka/options.go index 91c76e54..51fdf7c7 100644 --- a/v5/broker/kafka/options.go +++ b/v5/broker/kafka/options.go @@ -28,15 +28,14 @@ type asyncProduceErrorKey struct{} type asyncProduceSuccessKey struct{} func AsyncProducer(errors chan<- *sarama.ProducerError, successes chan<- *sarama.ProducerMessage) broker.Option { - // set default opt - var opt = func(options *broker.Options) {} - if successes != nil { - opt = setBrokerOption(asyncProduceSuccessKey{}, successes) - } - if errors != nil { - opt = setBrokerOption(asyncProduceErrorKey{}, errors) + return func(options *broker.Options) { + if errors != nil { + setBrokerOption(asyncProduceErrorKey{}, errors)(options) + } + if successes != nil { + setBrokerOption(asyncProduceSuccessKey{}, successes)(options) + } } - return opt } type subscribeContextKey struct{}