Files
crawlab/db/mongo/client_options.go

80 lines
1.6 KiB
Go

package mongo
import "context"
type ClientOption func(options *ClientOptions)
type ClientOptions struct {
Context context.Context
Uri string
Host string
Port int
Db string
Hosts []string
Username string
Password string
AuthSource string
AuthMechanism string
AuthMechanismProperties map[string]string
}
func WithContext(ctx context.Context) ClientOption {
return func(options *ClientOptions) {
options.Context = ctx
}
}
func WithUri(value string) ClientOption {
return func(options *ClientOptions) {
options.Uri = value
}
}
func WithHost(value string) ClientOption {
return func(options *ClientOptions) {
options.Host = value
}
}
func WithPort(value int) ClientOption {
return func(options *ClientOptions) {
options.Port = value
}
}
func WithDb(value string) ClientOption {
return func(options *ClientOptions) {
options.Db = value
}
}
func WithHosts(value []string) ClientOption {
return func(options *ClientOptions) {
options.Hosts = value
}
}
func WithUsername(value string) ClientOption {
return func(options *ClientOptions) {
options.Username = value
}
}
func WithPassword(value string) ClientOption {
return func(options *ClientOptions) {
options.Password = value
}
}
func WithAuthSource(value string) ClientOption {
return func(options *ClientOptions) {
options.AuthSource = value
}
}
func WithAuthMechanism(value string) ClientOption {
return func(options *ClientOptions) {
options.AuthMechanism = value
}
}