whatcanGOwrong
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
||||
package jsonrpc2
|
||||
|
||||
// CallOption is an option that can be provided to (*Conn).Call to
|
||||
// configure custom behavior. See Meta.
|
||||
type CallOption interface {
|
||||
apply(r *Request) error
|
||||
}
|
||||
|
||||
type callOptionFunc func(r *Request) error
|
||||
|
||||
func (c callOptionFunc) apply(r *Request) error { return c(r) }
|
||||
|
||||
// Meta returns a call option which attaches the given meta object to
|
||||
// the JSON-RPC 2.0 request (this is a Sourcegraph extension to JSON
|
||||
// RPC 2.0 for carrying metadata).
|
||||
func Meta(meta interface{}) CallOption {
|
||||
return callOptionFunc(func(r *Request) error {
|
||||
return r.SetMeta(meta)
|
||||
})
|
||||
}
|
||||
|
||||
// PickID returns a call option which sets the ID on a request. Care must be
|
||||
// taken to ensure there are no conflicts with any previously picked ID, nor
|
||||
// with the default sequence ID.
|
||||
func PickID(id ID) CallOption {
|
||||
return callOptionFunc(func(r *Request) error {
|
||||
r.ID = id
|
||||
return nil
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user