package grpc import ( "context" "crypto/tls" "go-micro.dev/v4/config/source" ) type addressKey struct{} type pathKey struct{} // WithAddress sets the consul address func WithAddress(a string) source.Option { return func(o *source.Options) { if o.Context == nil { o.Context = context.Background() } o.Context = context.WithValue(o.Context, addressKey{}, a) } } // WithPath sets the key prefix to use func WithPath(p string) source.Option { return func(o *source.Options) { if o.Context == nil { o.Context = context.Background() } o.Context = context.WithValue(o.Context, pathKey{}, p) } } // WithTLS sets the TLS config for the service func WithTLS(t *tls.Config) source.Option { return func(o *source.Options) { if o.Context == nil { o.Context = context.Background() } o.Context = context.WithValue(o.Context, tls.Config{}, t) } }