Skip to main content

JsonRpcMessage

Trait JsonRpcMessage 

Source
pub trait JsonRpcMessage:
    'static
    + Debug
    + Sized
    + Send
    + Clone {
    // Required methods
    fn matches_method(method: &str) -> bool;
    fn method(&self) -> &str;
    fn to_untyped_message(&self) -> Result<UntypedMessage, Error>;
    fn parse_message(
        method: &str,
        params: &impl Serialize,
    ) -> Result<Self, Error>;
}
Expand description

Common bounds for any JSON-RPC message.

§Derive Macro

For simple message types, you can use the JsonRpcRequest or JsonRpcNotification derive macros which will implement both JsonRpcMessage and the respective trait. See JsonRpcRequest and JsonRpcNotification for examples.

Required Methods§

Source

fn matches_method(method: &str) -> bool

Check if this message type matches the given method name.

Source

fn method(&self) -> &str

The method name for the message.

Source

fn to_untyped_message(&self) -> Result<UntypedMessage, Error>

Convert this message into an untyped message.

Source

fn parse_message(method: &str, params: &impl Serialize) -> Result<Self, Error>

Parse this type from a method name and parameters.

Returns an error if the method doesn’t match or deserialization fails. Callers should use matches_method first to check if this type handles the method.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl JsonRpcMessage for AgentNotification

Source§

impl JsonRpcMessage for AgentRequest

Source§

impl JsonRpcMessage for AuthenticateRequest

Source§

impl JsonRpcMessage for CancelNotification

Source§

impl JsonRpcMessage for ClientNotification

Source§

impl JsonRpcMessage for ClientRequest

Source§

impl JsonRpcMessage for CloseSessionRequest

Source§

impl JsonRpcMessage for CreateTerminalRequest

Source§

impl JsonRpcMessage for InitializeProxyRequest

Source§

impl JsonRpcMessage for InitializeRequest

Source§

impl JsonRpcMessage for KillTerminalRequest

Source§

impl JsonRpcMessage for ListSessionsRequest

Source§

impl JsonRpcMessage for LoadSessionRequest

Source§

impl JsonRpcMessage for LogoutRequest

Source§

impl JsonRpcMessage for McpConnectRequest

Source§

impl JsonRpcMessage for McpDisconnectNotification

Source§

impl JsonRpcMessage for NewSessionRequest

Source§

impl JsonRpcMessage for PromptRequest

Source§

impl JsonRpcMessage for ReadTextFileRequest

Source§

impl JsonRpcMessage for ReleaseTerminalRequest

Source§

impl JsonRpcMessage for RequestPermissionRequest

Source§

impl JsonRpcMessage for ResumeSessionRequest

Source§

impl JsonRpcMessage for SessionNotification

Source§

impl JsonRpcMessage for SetSessionConfigOptionRequest

Source§

impl JsonRpcMessage for SetSessionModeRequest

Source§

impl JsonRpcMessage for TerminalOutputRequest

Source§

impl JsonRpcMessage for UntypedMessage

Source§

impl JsonRpcMessage for WaitForTerminalExitRequest

Source§

impl JsonRpcMessage for WriteTextFileRequest

Source§

impl<M: JsonRpcMessage> JsonRpcMessage for McpOverAcpMessage<M>

Source§

impl<M: JsonRpcMessage> JsonRpcMessage for SuccessorMessage<M>