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§
fn next_request_id(&self) -> RequestId
fn last_request_id(&self) -> Option<RequestId>
fn reset_to(&self, id: u64)
Provided Methods§
Sourcefn request_id_for_message(
&self,
message: &dyn McpMessage,
request_id: Option<RequestId>,
) -> Option<RequestId>
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.