mirror of
https://github.com/go-micro/go-micro.git
synced 2025-01-29 18:04:17 +02:00
34 lines
580 B
Go
34 lines
580 B
Go
package reader
|
|
|
|
import (
|
|
"go-micro.dev/v4/config/encoder"
|
|
"go-micro.dev/v4/config/encoder/json"
|
|
)
|
|
|
|
type Options struct {
|
|
Encoding map[string]encoder.Encoder
|
|
}
|
|
|
|
type Option func(o *Options)
|
|
|
|
func NewOptions(opts ...Option) Options {
|
|
options := Options{
|
|
Encoding: map[string]encoder.Encoder{
|
|
"json": json.NewEncoder(),
|
|
},
|
|
}
|
|
for _, o := range opts {
|
|
o(&options)
|
|
}
|
|
return options
|
|
}
|
|
|
|
func WithEncoder(e encoder.Encoder) Option {
|
|
return func(o *Options) {
|
|
if o.Encoding == nil {
|
|
o.Encoding = make(map[string]encoder.Encoder)
|
|
}
|
|
o.Encoding[e.String()] = e
|
|
}
|
|
}
|