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 agent_client_protocol::AgentNotification

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::AgentNotification

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::AgentRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::AgentRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::schema::AuthenticateRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::AuthenticateRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::schema::CancelNotification

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::CancelNotification

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::ClientNotification

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::ClientNotification

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::ClientRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::ClientRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::schema::CloseSessionRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::CloseSessionRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::schema::CompleteElicitationNotification

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::CompleteElicitationNotification

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for ConnectMcpRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::schema::CreateElicitationRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::CreateElicitationRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for CreateTerminalRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::DeleteSessionRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::DeleteSessionRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for DisconnectMcpRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::schema::ForkSessionRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::ForkSessionRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for InitializeProxyRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::InitializeRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::InitializeRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for KillTerminalRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::ListSessionsRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::ListSessionsRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::schema::LoadSessionRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::LoadSessionRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::schema::LogoutRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::LogoutRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for McpConnectRequest

Source§

impl JsonRpcMessage for McpDisconnectNotification

Source§

impl JsonRpcMessage for MessageMcpNotification

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for MessageMcpRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::schema::NewSessionRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::NewSessionRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::schema::PromptRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::PromptRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for ReadTextFileRequest

Source§

impl JsonRpcMessage for ReleaseTerminalRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::RequestPermissionRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::RequestPermissionRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::schema::ResumeSessionRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::ResumeSessionRequest

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::schema::SessionNotification

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::SessionNotification

Available on crate feature unstable_protocol_v2 only.
Source§

impl JsonRpcMessage for agent_client_protocol::schema::SetSessionConfigOptionRequest

Source§

impl JsonRpcMessage for agent_client_protocol::schema::v2::SetSessionConfigOptionRequest

Available on crate feature unstable_protocol_v2 only.
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>