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  }