Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrInvalidRequest = Error{ Code: -32600, Message: "invalid request", } ErrMethodNotFound = Error{ Code: -32601, Message: "method not found", } ErrInvalidParams = Error{ Code: -32602, Message: "invalid params", } ErrInternal = Error{ Code: -32603, Message: "internal error", } ErrParse = Error{ Code: -32700, Message: "parse error", } )
View Source
var (
ErrClosed = errors.ConstError("connection has been closed")
)
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client interface {
Connect() error
Send(req Request, resp *Response) error
SendContext(ctx context.Context, req Request, resp *Response) error
SendAsync(req Request) ResponseFuture
SetCloseHandler(handler CloseHandler)
SetRequestHandler(handler RequestHandler)
Close() error
}
type CloseHandler ¶
type CloseHandler = func(err error)
type Connection ¶
type Dialer ¶
type Dialer interface {
Dial() (Connection, error)
DialContext(ctx context.Context) (Connection, error)
}
type Error ¶
type Error struct {
Code int32 `json:"code"`
Message string `json:"message"`
Data json.RawMessage `json:"data,omitempty"`
}
type IdGenerator ¶
type IdGenerator = func() string
type Request ¶
type Request struct {
Id json.RawMessage `json:"id,omitempty"`
Method string `json:"method"`
Params json.RawMessage `json:"params,omitempty"`
Version string `json:"jsonrpc,omitempty"`
}
func NewRequest ¶
func NewRequest(method string, params any, options ...RequestOption) (*Request, error)
func (*Request) EnsureId ¶
func (r *Request) EnsureId(gen IdGenerator) error
func (*Request) UnmarshalId ¶
func (*Request) UnmarshalParams ¶
type RequestHandler ¶
type RequestHandler = func(req Request)
type RequestOption ¶
type RequestOption = func(opts *RequestOptions) error
func RequestNumericId ¶
func RequestNumericId(id int) RequestOption
func RequestStringId ¶
func RequestStringId(id string) RequestOption
func RequestVersion ¶
func RequestVersion(version string) RequestOption
type RequestOptions ¶
type RequestOptions struct {
Version string
Id json.RawMessage
}
func DefaultRequestOptions ¶
func DefaultRequestOptions() RequestOptions
type Response ¶
type Response struct {
Id json.RawMessage `json:"id,omitempty"`
Result json.RawMessage `json:"result,omitempty"`
Error *Error `json:"error,omitempty"`
Version string `json:"jsonrpc"`
}
func NewResponse ¶
func NewResponse(result any, options ...ResponseOption) (*Response, error)
func NewResponseError ¶
func NewResponseError(error Error, options ...ResponseOption) (*Response, error)
func (*Response) UnmarshalId ¶
func (*Response) UnmarshalResult ¶
type ResponseOption ¶
type ResponseOption = func(opts *ResponseOptions) error
func ResponseNumericId ¶
func ResponseNumericId(id int) ResponseOption
func ResponseStringId ¶
func ResponseStringId(id string) ResponseOption
func ResponseVersion ¶
func ResponseVersion(version string) ResponseOption
type ResponseOptions ¶
type ResponseOptions struct {
Id json.RawMessage
Version string
}
func DefaultResponseOptions ¶
func DefaultResponseOptions() ResponseOptions
type WebSocketDialer ¶
func (WebSocketDialer) Dial ¶
func (w WebSocketDialer) Dial() (Connection, error)
func (WebSocketDialer) DialContext ¶
func (w WebSocketDialer) DialContext(ctx context.Context) (Connection, error)
Click to show internal directories.
Click to hide internal directories.