gitee.com/sasukebo/go-micro/v4@v4.7.1/config/reader/options.go (about) 1 package reader 2 3 import ( 4 "gitee.com/sasukebo/go-micro/v4/config/encoder" 5 "gitee.com/sasukebo/go-micro/v4/config/encoder/json" 6 ) 7 8 type Options struct { 9 Encoding map[string]encoder.Encoder 10 } 11 12 type Option func(o *Options) 13 14 func NewOptions(opts ...Option) Options { 15 options := Options{ 16 Encoding: map[string]encoder.Encoder{ 17 "json": json.NewEncoder(), 18 }, 19 } 20 for _, o := range opts { 21 o(&options) 22 } 23 return options 24 } 25 26 func WithEncoder(e encoder.Encoder) Option { 27 return func(o *Options) { 28 if o.Encoding == nil { 29 o.Encoding = make(map[string]encoder.Encoder) 30 } 31 o.Encoding[e.String()] = e 32 } 33 }