package etcd import ( "context" "go.uber.org/zap" "go.unistack.org/micro/v3/register" ) type authKey struct{} type logConfigKey struct{} type authCreds struct { Username string Password string } // Auth allows you to specify username/password func Auth(username, password string) register.Option { return func(o *register.Options) { if o.Context == nil { o.Context = context.Background() } o.Context = context.WithValue(o.Context, authKey{}, &authCreds{Username: username, Password: password}) } } // LogConfig allows you to set etcd log config func LogConfig(config *zap.Config) register.Option { return func(o *register.Options) { if o.Context == nil { o.Context = context.Background() } o.Context = context.WithValue(o.Context, logConfigKey{}, config) } }