RequestIdGen

Trait RequestIdGen 

Source
pub trait RequestIdGen: Send + Sync {
    // Required methods
    fn next_request_id(&self) -> RequestId;
    fn last_request_id(&self) -> Option<RequestId>;
    fn reset_to(&self, id: u64);

    // Provided method
    fn request_id_for_message(
        &self,
        message: &dyn McpMessage,
        request_id: Option<RequestId>,
    ) -> Option<RequestId> { ... }
}
Expand description

A trait for generating and managing request IDs in a thread-safe manner.

Implementors provide functionality to generate unique request IDs, retrieve the last generated ID, and reset the ID counter.

Required Methods§

Provided Methods§

Source

fn request_id_for_message( &self, message: &dyn McpMessage, request_id: Option<RequestId>, ) -> Option<RequestId>

Determines the request ID for an outgoing MCP message.

For requests, generates a new ID using the internal counter. For responses or errors, uses the provided request_id. Notifications receive no ID.

§Arguments
  • message - The MCP message to evaluate.
  • request_id - An optional existing request ID (required for responses/errors).
§Returns

An Option<RequestId>: Some for requests or responses/errors, None for notifications.

Implementors§