func WithRetryLimit(retries int) ConsumeOption {
	return func(o *ConsumeOptions) {
		o.RetryLimit = retries
		o.CustomRetries = true
	}
}
WithRetryLimit sets the RetryLimit field on ConsumeOptions.
Set to -1 for infinite retries (default)
package events
import "time"
type PublishOptions struct {
	Metadata map[string]string
	Timestamp time.Time
}
type PublishOption func(o *PublishOptions)
func WithMetadata(md map[string]string) PublishOption {
	return func(o *PublishOptions) {
		o.Metadata = md
	}
}
func WithTimestamp(t time.Time) PublishOption {
	return func(o *PublishOptions) {
		o.Timestamp = t
	}
}
type ConsumeOptions struct {
	Group string
	Offset time.Time
	AutoAck bool
	AckWait time.Duration
	RetryLimit int
	CustomRetries bool
}
type ConsumeOption func(o *ConsumeOptions)
func WithGroup(q string) ConsumeOption {
	return func(o *ConsumeOptions) {
		o.Group = q
	}
}
func WithOffset(t time.Time) ConsumeOption {
	return func(o *ConsumeOptions) {
		o.Offset = t
	}
}
func WithAutoAck(ack bool, ackWait time.Duration) ConsumeOption {
	return func(o *ConsumeOptions) {
		o.AutoAck = ack
		o.AckWait = ackWait
	}
}