Files
QSfera/vendor/github.com/go-micro/plugins/v4/server/http/options.go
T
2023-04-19 20:24:34 +02:00

57 lines
993 B
Go

package http
import (
"context"
"net"
"go-micro.dev/v4/broker"
"go-micro.dev/v4/codec"
"go-micro.dev/v4/registry"
"go-micro.dev/v4/server"
)
type netListener struct{}
func newOptions(opt ...server.Option) server.Options {
opts := server.Options{
Codecs: make(map[string]codec.NewCodec),
Metadata: map[string]string{},
Context: context.Background(),
}
for _, o := range opt {
o(&opts)
}
if opts.Broker == nil {
opts.Broker = broker.DefaultBroker
}
if opts.Registry == nil {
opts.Registry = registry.DefaultRegistry
}
if len(opts.Address) == 0 {
opts.Address = server.DefaultAddress
}
if len(opts.Name) == 0 {
opts.Name = server.DefaultName
}
if len(opts.Id) == 0 {
opts.Id = server.DefaultId
}
if len(opts.Version) == 0 {
opts.Version = server.DefaultVersion
}
return opts
}
// Listener specifies the net.Listener to use instead of the default.
func Listener(l net.Listener) server.Option {
return setServerOption(netListener{}, l)
}