diff --git a/auth/auth.go b/auth/auth.go index cbd587b8..b88b72bf 100644 --- a/auth/auth.go +++ b/auth/auth.go @@ -19,7 +19,7 @@ const ( ) var ( - DefaultAuth Auth = &NoopAuth{opts: NewOptions()} + DefaultAuth Auth = NewAuth() // ErrInvalidToken is when the token provided is not valid ErrInvalidToken = errors.New("invalid token provided") // ErrForbidden is when a user does not have the necessary scope to access a resource diff --git a/auth/noop.go b/auth/noop.go index ed0f485f..87399126 100644 --- a/auth/noop.go +++ b/auth/noop.go @@ -4,29 +4,29 @@ import ( "github.com/google/uuid" ) -type NoopAuth struct { +type noopAuth struct { opts Options } // String returns the name of the implementation -func (n *NoopAuth) String() string { +func (n *noopAuth) String() string { return "noop" } // Init the auth -func (n *NoopAuth) Init(opts ...Option) { +func (n *noopAuth) Init(opts ...Option) { for _, o := range opts { o(&n.opts) } } // Options set for auth -func (n *NoopAuth) Options() Options { +func (n *noopAuth) Options() Options { return n.opts } // Generate a new account -func (n *NoopAuth) Generate(id string, opts ...GenerateOption) (*Account, error) { +func (n *noopAuth) Generate(id string, opts ...GenerateOption) (*Account, error) { options := NewGenerateOptions(opts...) return &Account{ @@ -39,27 +39,27 @@ func (n *NoopAuth) Generate(id string, opts ...GenerateOption) (*Account, error) } // Grant access to a resource -func (n *NoopAuth) Grant(rule *Rule) error { +func (n *noopAuth) Grant(rule *Rule) error { return nil } // Revoke access to a resource -func (n *NoopAuth) Revoke(rule *Rule) error { +func (n *noopAuth) Revoke(rule *Rule) error { return nil } // Rules used to verify requests -func (n *NoopAuth) Rules(opts ...RulesOption) ([]*Rule, error) { +func (n *noopAuth) Rules(opts ...RulesOption) ([]*Rule, error) { return []*Rule{}, nil } // Verify an account has access to a resource -func (n *NoopAuth) Verify(acc *Account, res *Resource, opts ...VerifyOption) error { +func (n *noopAuth) Verify(acc *Account, res *Resource, opts ...VerifyOption) error { return nil } // Inspect a token -func (n *NoopAuth) Inspect(token string) (*Account, error) { +func (n *noopAuth) Inspect(token string) (*Account, error) { uid, err := uuid.NewRandom() if err != nil { return nil, err @@ -68,6 +68,11 @@ func (n *NoopAuth) Inspect(token string) (*Account, error) { } // Token generation using an account id and secret -func (n *NoopAuth) Token(opts ...TokenOption) (*Token, error) { +func (n *noopAuth) Token(opts ...TokenOption) (*Token, error) { return &Token{}, nil } + +// NewAuth returns new noop auth +func NewAuth(opts ...Option) Auth { + return &noopAuth{opts: NewOptions(opts...)} +} diff --git a/broker/broker.go b/broker/broker.go index 2a68d9b8..e032f800 100644 --- a/broker/broker.go +++ b/broker/broker.go @@ -8,6 +8,7 @@ import ( ) var ( + // DefaultBroker default broker DefaultBroker Broker = NewBroker() ) diff --git a/broker/context.go b/broker/context.go index 3420ad2c..893b8188 100644 --- a/broker/context.go +++ b/broker/context.go @@ -6,11 +6,13 @@ import ( type brokerKey struct{} +// FromContext returns broker from passed context func FromContext(ctx context.Context) (Broker, bool) { c, ok := ctx.Value(brokerKey{}).(Broker) return c, ok } +// NewContext savess broker in context func NewContext(ctx context.Context, s Broker) context.Context { return context.WithValue(ctx, brokerKey{}, s) } diff --git a/broker/options.go b/broker/options.go index 2295c23f..603f281f 100644 --- a/broker/options.go +++ b/broker/options.go @@ -181,7 +181,8 @@ func SubscribeErrorHandler(h Handler) SubscribeOption { } } -// Deprecated: Queue sets the subscribers sueue +// Queue sets the subscribers queue +// Deprecated func Queue(name string) SubscribeOption { return func(o *SubscribeOptions) { o.Group = name diff --git a/client/context.go b/client/context.go index 0a9d0e5c..a079ef11 100644 --- a/client/context.go +++ b/client/context.go @@ -6,11 +6,13 @@ import ( type clientKey struct{} +// FromContext get client from context func FromContext(ctx context.Context) (Client, bool) { c, ok := ctx.Value(clientKey{}).(Client) return c, ok } +// NewContext put client in context func NewContext(ctx context.Context, c Client) context.Context { return context.WithValue(ctx, clientKey{}, c) } diff --git a/client/noop.go b/client/noop.go index 3b78dc39..01224a2f 100644 --- a/client/noop.go +++ b/client/noop.go @@ -10,6 +10,7 @@ import ( ) var ( + // DefaultCodecs will be used to encode/decode data DefaultCodecs = map[string]codec.Codec{ //"application/json": cjson.NewCodec, //"application/json-rpc": cjsonrpc.NewCodec, diff --git a/client/options.go b/client/options.go index 03450997..a84180eb 100644 --- a/client/options.go +++ b/client/options.go @@ -14,6 +14,7 @@ import ( "github.com/unistack-org/micro/v3/selector/random" ) +// Options holds client options type Options struct { // Used to select codec ContentType string @@ -45,6 +46,7 @@ type Options struct { Context context.Context } +// NewCallOptions creates new call options struct func NewCallOptions(opts ...CallOption) CallOptions { options := CallOptions{} for _, o := range opts { @@ -53,6 +55,7 @@ func NewCallOptions(opts ...CallOption) CallOptions { return options } +// CallOptions holds client call options type CallOptions struct { // Address of remote hosts Address []string @@ -87,12 +90,14 @@ type CallOptions struct { Context context.Context } +// Context pass context to client func Context(ctx context.Context) Option { return func(o *Options) { o.Context = ctx } } +// NewPublishOptions create new PublishOptions struct from option func NewPublishOptions(opts ...PublishOption) PublishOptions { options := PublishOptions{} for _, o := range opts { @@ -101,6 +106,7 @@ func NewPublishOptions(opts ...PublishOption) PublishOptions { return options } +// PublishOptions holds publish options type PublishOptions struct { // Exchange is the routing exchange for the message Exchange string @@ -109,6 +115,7 @@ type PublishOptions struct { Context context.Context } +// NewMessageOptions creates message options struct func NewMessageOptions(opts ...MessageOption) MessageOptions { options := MessageOptions{} for _, o := range opts { @@ -117,10 +124,12 @@ func NewMessageOptions(opts ...MessageOption) MessageOptions { return options } +// MessageOptions holds client message options type MessageOptions struct { ContentType string } +// NewRequestOptions creates new RequestOptions struct func NewRequestOptions(opts ...RequestOption) RequestOptions { options := RequestOptions{} for _, o := range opts { @@ -129,6 +138,7 @@ func NewRequestOptions(opts ...RequestOption) RequestOptions { return options } +// RequestOptions holds client request options type RequestOptions struct { ContentType string Stream bool @@ -138,6 +148,7 @@ type RequestOptions struct { Context context.Context } +// NewOptions creates new options struct func NewOptions(opts ...Option) Options { options := Options{ Context: context.Background(), @@ -172,6 +183,7 @@ func Broker(b broker.Broker) Option { } } +// Logger to be used for log mesages func Logger(l logger.Logger) Option { return func(o *Options) { o.Logger = l @@ -272,7 +284,7 @@ func Lookup(l LookupFunc) Option { } } -// Number of retries when making the request. +// Retries sets the retry count when making the request. // Should this be a Call Option? func Retries(i int) Option { return func(o *Options) { @@ -287,7 +299,7 @@ func Retry(fn RetryFunc) Option { } } -// The request timeout. +// RequestTimeout is the request timeout. // Should this be a Call Option? func RequestTimeout(d time.Duration) Option { return func(o *Options) { @@ -422,6 +434,7 @@ func WithSelectOptions(sops ...selector.SelectOption) CallOption { } } +// WithMessageContentType sets the message content type func WithMessageContentType(ct string) MessageOption { return func(o *MessageOptions) { o.ContentType = ct @@ -430,12 +443,14 @@ func WithMessageContentType(ct string) MessageOption { // Request Options +// WithContentType specifies request content type func WithContentType(ct string) RequestOption { return func(o *RequestOptions) { o.ContentType = ct } } +// StreamingRequest specifies that request is streaming func StreamingRequest() RequestOption { return func(o *RequestOptions) { o.Stream = true diff --git a/codec/codec.go b/codec/codec.go index fa5c98e9..09caf920 100644 --- a/codec/codec.go +++ b/codec/codec.go @@ -9,6 +9,7 @@ import ( ) const ( + // Message types Error MessageType = iota Request Response @@ -23,6 +24,7 @@ var ( ) var ( + // DefaultMaxMsgSize specifies how much data codec can handle DefaultMaxMsgSize = 1024 * 1024 * 4 // 4Mb ) @@ -59,18 +61,22 @@ type Message struct { Body []byte } +// Option func type Option func(*Options) +// Options contains codec options type Options struct { MaxMsgSize int64 } +// MaxMsgSize sets the max message size func MaxMsgSize(n int64) Option { return func(o *Options) { o.MaxMsgSize = n } } +// NewMessage creates new codec message func NewMessage(t MessageType) *Message { return &Message{Type: t, Header: metadata.New(0)} } diff --git a/codec/noop.go b/codec/noop.go index 9a0e6849..c232c087 100644 --- a/codec/noop.go +++ b/codec/noop.go @@ -74,11 +74,12 @@ func (c *noopCodec) String() string { return "noop" } +// NewCodec returns new noop codec func NewCodec() Codec { return &noopCodec{} } -func (n *noopCodec) Marshal(v interface{}) ([]byte, error) { +func (c *noopCodec) Marshal(v interface{}) ([]byte, error) { if v == nil { return nil, nil } @@ -100,7 +101,7 @@ func (n *noopCodec) Marshal(v interface{}) ([]byte, error) { return nil, ErrInvalidMessage } -func (n *noopCodec) Unmarshal(d []byte, v interface{}) error { +func (c *noopCodec) Unmarshal(d []byte, v interface{}) error { if v == nil { return nil } diff --git a/config/config.go b/config/config.go index 9531c875..2337b847 100644 --- a/config/config.go +++ b/config/config.go @@ -7,6 +7,7 @@ import ( ) var ( + // DefaultConfig default config DefaultConfig Config = NewConfig() ) diff --git a/errors/errors.go b/errors/errors.go index 971c3f87..95b65544 100644 --- a/errors/errors.go +++ b/errors/errors.go @@ -9,18 +9,30 @@ import ( ) var ( - ErrBadRequest = &Error{Code: 400} - ErrUnauthorized = &Error{Code: 401} - ErrForbidden = &Error{Code: 403} - ErrNotFound = &Error{Code: 404} - ErrMethodNotAllowed = &Error{Code: 405} - ErrTimeout = &Error{Code: 408} - ErrConflict = &Error{Code: 409} + // ErrBadRequest + ErrBadRequest = &Error{Code: 400} + // ErrUnauthorized + ErrUnauthorized = &Error{Code: 401} + // ErrForbidden + ErrForbidden = &Error{Code: 403} + // ErrNotFound + ErrNotFound = &Error{Code: 404} + // ErrMethodNotAllowed + ErrMethodNotAllowed = &Error{Code: 405} + // ErrTimeout + ErrTimeout = &Error{Code: 408} + // ErrConflict + ErrConflict = &Error{Code: 409} + // ErrInternalServerError ErrInternalServerError = &Error{Code: 500} - ErNotImplemented = &Error{Code: 501} - ErrBadGateway = &Error{Code: 502} - ErrServiceUnavailable = &Error{Code: 503} - ErrGatewayTimeout = &Error{Code: 504} + // ErNotImplemented + ErNotImplemented = &Error{Code: 501} + // ErrBadGateway + ErrBadGateway = &Error{Code: 502} + // ErrServiceUnavailable + ErrServiceUnavailable = &Error{Code: 503} + // ErrGatewayTimeout + ErrGatewayTimeout = &Error{Code: 504} ) // Error tpye diff --git a/go.mod b/go.mod index d5c9bd1c..091ca8f4 100644 --- a/go.mod +++ b/go.mod @@ -9,12 +9,16 @@ require ( github.com/go-acme/lego/v3 v3.4.0 github.com/golang/protobuf v1.4.3 github.com/google/uuid v1.1.2 - github.com/micro/cli/v2 v2.1.2 + github.com/kr/text v0.2.0 // indirect github.com/miekg/dns v1.1.31 + github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e // indirect github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c github.com/stretchr/testify v1.5.1 - github.com/unistack-org/micro-config-cmd v0.0.0-20201028144621-5a55f1aad70a golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a golang.org/x/net v0.0.0-20200904194848-62affa334b73 + golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1 // indirect google.golang.org/protobuf v1.25.0 + gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f // indirect + gopkg.in/square/go-jose.v2 v2.4.1 // indirect + gopkg.in/yaml.v2 v2.3.0 // indirect ) diff --git a/go.sum b/go.sum index f5bec3b4..61bb68a6 100644 --- a/go.sum +++ b/go.sum @@ -42,7 +42,6 @@ github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bradfitz/gomemcache v0.0.0-20190913173617-a41fca850d0b/go.mod h1:H0wQNHz2YrLsuXOZozoeDmnHXkNCRmMW0gwFWDfEZDA= github.com/caddyserver/certmagic v0.10.6 h1:sCya6FmfaN74oZE46kqfaFOVoROD/mF36rTQfjN7TZc= github.com/caddyserver/certmagic v0.10.6/go.mod h1:Y8jcUBctgk/IhpAzlHKfimZNyXCkfGgRTC0orl8gROQ= github.com/cenkalti/backoff/v4 v4.0.0 h1:6VeaLF9aI+MAUQ95106HwWzYZgJJpZ4stumjj6RFYAU= @@ -53,8 +52,6 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cloudflare/cloudflare-go v0.10.2/go.mod h1:qhVI5MKwBGhdNU89ZRz2plgYutcJ5PCekLxXn56w6SY= github.com/cpu/goacmedns v0.0.1/go.mod h1:sesf/pNnCYwUevQEQfEwY0Y3DydlQWSGZbaMElOWxok= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -71,9 +68,6 @@ github.com/ef-ds/deque v1.0.4-0.20190904040645-54cb57c252a1 h1:jFGzikHboUMRXmMBt github.com/ef-ds/deque v1.0.4-0.20190904040645-54cb57c252a1/go.mod h1:HvODWzv6Y6kBf3Ah2WzN1bHjDUezGLaAhwuWVwfpEJs= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/evanphx/json-patch/v5 v5.0.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= -github.com/evanphx/json-patch/v5 v5.1.0 h1:B0aXl1o/1cP8NbviYiBMkcHBtUjIJ1/Ccg6b+SwCLQg= -github.com/evanphx/json-patch/v5 v5.1.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2VvlbKOFpnXhI9Bw4= github.com/exoscale/egoscale v0.18.1/go.mod h1:Z7OOdzzTOz1Q1PjQXumlz9Wn/CddH0zSYdCF3rnBKXE= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -89,12 +83,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= -github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= -github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.0.3 h1:ZOigqf7iBxkA4jdQ3am7ATzdlOFp9YzA6NmuvEEZc9g= -github.com/gobwas/ws v1.0.3/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -112,7 +100,6 @@ github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrU github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -145,11 +132,8 @@ github.com/h2non/parth v0.0.0-20190131123155-b4df798d6542/go.mod h1:Ow0tF8D4Kplb github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/iij/doapi v0.0.0-20190504054126-0bbf12d6d7df/go.mod h1:QMZY7/J/KSQEhKWFeDesPjMj+wCHReeknARU3wqlyN4= -github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -165,7 +149,6 @@ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxv github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -179,10 +162,7 @@ github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-tty v0.0.0-20180219170247-931426f7535a/go.mod h1:XPvLUNfbS4fJH25nqRHfWLMa1ONC8Amw+mIA639KxkE= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/micro/cli/v2 v2.1.2 h1:43J1lChg/rZCC1rvdqZNFSQDrGT7qfMrtp6/ztpIkEM= -github.com/micro/cli/v2 v2.1.2/go.mod h1:EguNh6DAoWKm9nmk+k/Rg0H3lQnDxqzu5x5srOtGtYg= github.com/miekg/dns v1.1.15/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.27/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/miekg/dns v1.1.31 h1:sJFOl9BgwbYAWOGEwr61FU28pqsBNdpRBnhGXtO06Oo= github.com/miekg/dns v1.1.31/go.mod h1:KNUDUusw/aVsxyTYZM1oqvCicbwhgbNgztCETuNZ7xM= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= @@ -210,12 +190,9 @@ github.com/oracle/oci-go-sdk v7.0.0+incompatible/go.mod h1:VQb79nF8Z2cwLkLS35ukw github.com/ovh/go-ovh v0.0.0-20181109152953-ba5adb4cf014/go.mod h1:joRatxRJaZBsY3JAOEMcoOp05CnZzsx4scTxi95DHyQ= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c h1:rp5dCmg/yLR3mgFuSOe4oEnDDmGLROTvMragMUXpTQw= github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c/go.mod h1:X07ZCGwUbLaax7L0S3Tw4hpejzu63ZrrQiUe6W0hcy0= -github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= @@ -258,17 +235,6 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/timewasted/linode v0.0.0-20160829202747-37e84520dcf7/go.mod h1:imsgLplxEC/etjIhdr3dNzV3JeT27LbVu5pYWm0JCBY= github.com/transip/gotransip v0.0.0-20190812104329-6d8d9179b66f/go.mod h1:i0f4R4o2HM0m3DZYQWsj6/MEowD57VzoH0v3d7igeFY= github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= -github.com/unistack-org/micro-codec-bytes v0.0.0-20200828083432-4e49e953d844 h1:5b1yuSllbsMm/9fUIlIXSr8DbsKT/sAKSCgOx6+SAfI= -github.com/unistack-org/micro-codec-bytes v0.0.0-20200828083432-4e49e953d844/go.mod h1:g5sOI8TWgGZiVHe8zoUPdtz7+0oLnqTnfBoai6Qb7jE= -github.com/unistack-org/micro-config-cmd v0.0.0-20200909210346-ec89783dc46c/go.mod h1:6pm1cadbwsFcEW1ZbV5Fp0i3goR3TNfROMNSPih3I8k= -github.com/unistack-org/micro-config-cmd v0.0.0-20200909210755-6e7e85eeab34/go.mod h1:fT1gYn+TtfVZZ5tNx56bZIncJjmlji66g7GKdWua5hE= -github.com/unistack-org/micro-config-cmd v0.0.0-20200920140133-0853deb2e5dc/go.mod h1:il8nz4ZEcX3Usyfrtwy+YtQcb7xSUSFJdSe8PBJ9gOA= -github.com/unistack-org/micro-config-cmd v0.0.0-20201028144621-5a55f1aad70a h1:VjlqP1qZkjC0Chmx5MKFPIbtSCigeICFDf8vaLZGh9o= -github.com/unistack-org/micro-config-cmd v0.0.0-20201028144621-5a55f1aad70a/go.mod h1:MzMg+qh1wORZwYtg5AVgFkNFrXVVbdPKW7s/Is+A994= -github.com/unistack-org/micro/v3 v3.0.0-20200827083227-aa99378adc6e/go.mod h1:rPQbnry3nboAnMczj8B1Gzlcyv/HYoMZLgd3/3nttJ4= -github.com/unistack-org/micro/v3 v3.0.0-gamma.0.20200909210629-caec730248b1/go.mod h1:mmqHR9WelHUXqg2mELjsQ+FJHcWs6mNmXg+wEYO2T3c= -github.com/unistack-org/micro/v3 v3.0.0-gamma.0.20200920135754-1cbd1d2bad83/go.mod h1:HUzMG4Mcy97958VxWTg8zuazZgwQ/aoLZ8wtBVONwRE= -github.com/unistack-org/micro/v3 v3.0.0-gamma.0.20200922103357-4c4fa00a5d94/go.mod h1:aL+8VhSXpx0SuEeXPOWUo5BgS7kyvWYobeXFay90UUM= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/vultr/govultr v0.1.4/go.mod h1:9H008Uxr/C4vFNGLqKx232C206GL0PBHzOP0809bGNA= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -290,7 +256,6 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a h1:vclmkQCjlDX5OydZ9wv8rBCcS0QyQY66Mpf/7BZbInM= golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -332,7 +297,6 @@ golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190930134127-c5a3c61f89f3/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191027093000-83d349e8ac1a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200904194848-62affa334b73 h1:MXfv8rhZWmFeqX3GNZRsd6vOLoaCHjYEX3qkRo3YBUA= golang.org/x/net v0.0.0-20200904194848-62affa334b73/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -419,8 +383,6 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d h1:92D1fum1bJLKSdr11OJ+54YeCMCGYIygTA7R/YZxH5M= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= @@ -436,13 +398,11 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= diff --git a/logger/level.go b/logger/level.go index 6f07e2ff..37bb9c0a 100644 --- a/logger/level.go +++ b/logger/level.go @@ -4,6 +4,7 @@ import ( "fmt" ) +// Level means logger level type Level int8 const ( @@ -22,6 +23,7 @@ const ( FatalLevel ) +// String returns logger level string representation func (l Level) String() string { switch l { case TraceLevel: diff --git a/logger/logger.go b/logger/logger.go index 8e808653..6dcf8ef5 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -44,54 +44,67 @@ type Logger interface { String() string } +// Info writes msg to default logger on info level func Info(args ...interface{}) { DefaultLogger.Info(args...) } +// Error writes msg to default logger on error level func Error(args ...interface{}) { DefaultLogger.Error(args...) } +// Debug writes msg to default logger on debug level func Debug(args ...interface{}) { DefaultLogger.Debug(args...) } +// Warn writes msg to default logger on warn level func Warn(args ...interface{}) { DefaultLogger.Warn(args...) } +// Trace writes msg to default logger on trace level func Trace(args ...interface{}) { DefaultLogger.Trace(args...) } +// Fatal writes msg to default logger on fatal level func Fatal(args ...interface{}) { DefaultLogger.Fatal(args...) } +// Infof writes formatted msg to default logger on info level func Infof(msg string, args ...interface{}) { DefaultLogger.Infof(msg, args...) } +// Errorf writes formatted msg to default logger on error level func Errorf(msg string, args ...interface{}) { DefaultLogger.Errorf(msg, args...) } +// Debugf writes formatted msg to default logger on debug level func Debugf(msg string, args ...interface{}) { DefaultLogger.Debugf(msg, args...) } +// Warnf writes formatted msg to default logger on warn level func Warnf(msg string, args ...interface{}) { DefaultLogger.Warnf(msg, args...) } +// Tracef writes formatted msg to default logger on trace level func Tracef(msg string, args ...interface{}) { DefaultLogger.Tracef(msg, args...) } +// Fatalf writes formatted msg to default logger on fatal level func Fatalf(msg string, args ...interface{}) { DefaultLogger.Fatalf(msg, args...) } +// V returns true if passed level enabled in default logger func V(level Level) bool { return DefaultLogger.V(level) } diff --git a/logger/options.go b/logger/options.go index 0bfd2a42..73d43554 100644 --- a/logger/options.go +++ b/logger/options.go @@ -6,8 +6,10 @@ import ( "os" ) +// Option func type Option func(*Options) +// Options holds logger options type Options struct { // The logging level the logger should log at. default is `InfoLevel` Level Level @@ -21,6 +23,7 @@ type Options struct { Context context.Context } +// NewOptions creates new options struct func NewOptions(opts ...Option) Options { options := Options{ Level: InfoLevel, diff --git a/metadata/metadata.go b/metadata/metadata.go index b2216217..1b467247 100644 --- a/metadata/metadata.go +++ b/metadata/metadata.go @@ -54,6 +54,7 @@ func Copy(md Metadata) Metadata { return nmd } +// Del deletes key from metadata func Del(ctx context.Context, key string) context.Context { md, ok := FromContext(ctx) if !ok { diff --git a/network/transport/context.go b/network/transport/context.go index eace44a4..86649f81 100644 --- a/network/transport/context.go +++ b/network/transport/context.go @@ -6,11 +6,13 @@ import ( type transportKey struct{} +// FromContext get transport from context func FromContext(ctx context.Context) (Transport, bool) { c, ok := ctx.Value(transportKey{}).(Transport) return c, ok } +// NewContext put transport in context func NewContext(ctx context.Context, c Transport) context.Context { return context.WithValue(ctx, transportKey{}, c) } diff --git a/network/transport/noop.go b/network/transport/noop.go index 646c42e2..e5fac7b4 100644 --- a/network/transport/noop.go +++ b/network/transport/noop.go @@ -6,6 +6,7 @@ type noopTransport struct { opts Options } +// NewTransport creates new noop transport func NewTransport(opts ...Option) Transport { return &noopTransport{opts: NewOptions(opts...)} } diff --git a/registry/context.go b/registry/context.go index ee7c4ec1..9ad7c8a6 100644 --- a/registry/context.go +++ b/registry/context.go @@ -6,11 +6,13 @@ import ( type registryKey struct{} +// FromContext get registry from context func FromContext(ctx context.Context) (Registry, bool) { c, ok := ctx.Value(registryKey{}).(Registry) return c, ok } +// NewContext put registry in context func NewContext(ctx context.Context, c Registry) context.Context { return context.WithValue(ctx, registryKey{}, c) } diff --git a/registry/registry.go b/registry/registry.go index 70dc4e49..25b9fcea 100644 --- a/registry/registry.go +++ b/registry/registry.go @@ -24,7 +24,7 @@ var ( ErrWatcherStopped = errors.New("watcher stopped") ) -// The registry provides an interface for service discovery +// Registry provides an interface for service discovery // and an abstraction over varying implementations // {consul, etcd, zookeeper, ...} type Registry interface { @@ -64,7 +64,7 @@ type Endpoint struct { Metadata metadata.Metadata `json:"metadata"` } -// Valud holds additional kv stuff +// Value holds additional kv stuff type Value struct { Name string `json:"name"` Type string `json:"type"` diff --git a/server/noop.go b/server/noop.go index 1279b11b..1721f5e5 100644 --- a/server/noop.go +++ b/server/noop.go @@ -17,6 +17,7 @@ import ( ) var ( + // DefaultCodecs will be used to encode/decode DefaultCodecs = map[string]codec.Codec{ //"application/json": cjson.NewCodec, //"application/json-rpc": cjsonrpc.NewCodec, diff --git a/server/options.go b/server/options.go index fb4a31e1..0690d634 100644 --- a/server/options.go +++ b/server/options.go @@ -16,6 +16,7 @@ import ( "github.com/unistack-org/micro/v3/tracer" ) +// Option func type Option func(*Options) // Options server struct diff --git a/server/server.go b/server/server.go index 9badf18e..f4e97973 100644 --- a/server/server.go +++ b/server/server.go @@ -12,21 +12,33 @@ import ( ) var ( + // DefaultServer default server DefaultServer Server = NewServer() ) var ( - DefaultAddress = ":0" - DefaultName = "server" - DefaultVersion = "latest" - DefaultId = uuid.New().String() - DefaultRegisterCheck = func(context.Context) error { return nil } + // DefaultAddress will be used if no address passed + DefaultAddress = ":0" + // DefaultName will be used if no name passed + DefaultName = "server" + // DefaultVersion will be used if no version passed + DefaultVersion = "latest" + // DefaultId will be used if no id passed + DefaultId = uuid.New().String() + // DefaultRegisterCheck holds func that run before register server + DefaultRegisterCheck = func(context.Context) error { return nil } + // DefaultRegisterInterval holds interval for register DefaultRegisterInterval = time.Second * 30 - DefaultRegisterTTL = time.Second * 90 - DefaultNamespace = "micro" - DefaultMaxMsgSize = 1024 * 1024 * 4 // 4Mb - DefaultMaxMsgRecvSize = 1024 * 1024 * 4 // 4Mb - DefaultMaxMsgSendSize = 1024 * 1024 * 4 // 4Mb + // DefaultRegisterTTL holds registry record ttl, must be multiple of DefaultRegisterInterval + DefaultRegisterTTL = time.Second * 90 + // DefaultNamespace will be used if no namespace passed + DefaultNamespace = "micro" + // DefaultMaxMsgSize holds default max msg ssize + DefaultMaxMsgSize = 1024 * 1024 * 4 // 4Mb + // DefaultMaxMsgRecvSize holds default max recv size + DefaultMaxMsgRecvSize = 1024 * 1024 * 4 // 4Mb + // DefaultMaxMsgSendSize holds default max send size + DefaultMaxMsgSendSize = 1024 * 1024 * 4 // 4Mb ) // Server is a simple micro server abstraction diff --git a/store/context.go b/store/context.go index 10d495ce..f0bdcb98 100644 --- a/store/context.go +++ b/store/context.go @@ -6,11 +6,13 @@ import ( type storeKey struct{} -func storeContext(ctx context.Context) (Store, bool) { +// FromContext get store from context +func FromContext(ctx context.Context) (Store, bool) { c, ok := ctx.Value(storeKey{}).(Store) return c, ok } +// NewContext put store in context func NewContext(ctx context.Context, c Store) context.Context { return context.WithValue(ctx, storeKey{}, c) } diff --git a/store/options.go b/store/options.go index 27d8b645..92f8a91c 100644 --- a/store/options.go +++ b/store/options.go @@ -23,6 +23,7 @@ type Options struct { Context context.Context } +// NewOptions creates options struct func NewOptions(opts ...Option) Options { options := Options{ Logger: logger.DefaultLogger, @@ -37,6 +38,7 @@ func NewOptions(opts ...Option) Options { // Option sets values in Options type Option func(o *Options) +// Context pass context to store func Context(ctx context.Context) Option { return func(o *Options) { o.Context = ctx diff --git a/tracer/context.go b/tracer/context.go index 8bbaab66..271a6653 100644 --- a/tracer/context.go +++ b/tracer/context.go @@ -1,4 +1,4 @@ -// Package trace provides an interface for distributed tracing +// Package tracer provides an interface for distributed tracing package tracer import ( diff --git a/tracer/options.go b/tracer/options.go index 88f51d0b..33e90fd1 100644 --- a/tracer/options.go +++ b/tracer/options.go @@ -23,7 +23,7 @@ type ReadOptions struct { // ReadOption func type ReadOption func(o *ReadOptions) -// ReadTracer read the given trace +// ReadTrace read the given trace func ReadTrace(t string) ReadOption { return func(o *ReadOptions) { o.Trace = t