chore: coding style (#3960)

This commit is contained in:
Kevin Wan
2024-03-03 00:17:38 +08:00
committed by GitHub
parent b624b966f0
commit 25821bdee6
4 changed files with 18 additions and 18 deletions

View File

@@ -19,17 +19,17 @@ var (
)
type (
options = mopt.ClientOptions
// Option defines the method to customize a mongo model.
Option func(opts *options)
// RegisterType A struct store With custom type and Encoder/Decoder
RegisterType struct {
// TypeCodec is a struct that stores specific type Encoder/Decoder.
TypeCodec struct {
ValueType reflect.Type
Encoder bsoncodec.ValueEncoder
Decoder bsoncodec.ValueDecoder
}
options = mopt.ClientOptions
)
// DisableLog disables logging of mongo commands, includes info and slow logs.
@@ -48,12 +48,6 @@ func SetSlowThreshold(threshold time.Duration) {
slowThreshold.Set(threshold)
}
func defaultTimeoutOption() Option {
return func(opts *options) {
opts.SetTimeout(defaultTimeout)
}
}
// WithTimeout set the mon client operation timeout.
func WithTimeout(timeout time.Duration) Option {
return func(opts *options) {
@@ -61,14 +55,20 @@ func WithTimeout(timeout time.Duration) Option {
}
}
// WithRegistry set the Registry to convert custom type to mongo primitive type more easily.
func WithRegistry(registerType ...RegisterType) Option {
// WithTypeCodec registers TypeCodecs to convert custom types.
func WithTypeCodec(typeCodecs ...TypeCodec) Option {
return func(opts *options) {
registry := bson.NewRegistry()
for _, v := range registerType {
for _, v := range typeCodecs {
registry.RegisterTypeEncoder(v.ValueType, v.Encoder)
registry.RegisterTypeDecoder(v.ValueType, v.Decoder)
}
opts.SetRegistry(registry)
}
}
func defaultTimeoutOption() Option {
return func(opts *options) {
opts.SetTimeout(defaultTimeout)
}
}

View File

@@ -79,16 +79,16 @@ func TestWithRegistryForTimestampRegisterType(t *testing.T) {
return nil
}
registerType := []RegisterType{
codecs := []TypeCodec{
{
ValueType: reflect.TypeOf(time.Time{}),
Encoder: mongoDateTimeEncoder,
Decoder: mongoDateTimeDecoder,
},
}
WithRegistry(registerType...)(opts)
WithTypeCodec(codecs...)(opts)
for _, v := range registerType {
for _, v := range codecs {
// Validate Encoder
enc, err := opts.Registry.LookupEncoder(v.ValueType)
if err != nil {