rust_mcp_sdk/hyper_servers/
app_state.rs

1use std::{sync::Arc, time::Duration};
2
3use crate::schema::InitializeResult;
4use rust_mcp_transport::TransportOptions;
5
6use crate::mcp_traits::mcp_handler::McpServerHandler;
7
8use super::{session_store::SessionStore, IdGenerator};
9
10/// Application state struct for the Hyper server
11///
12/// Holds shared, thread-safe references to session storage, ID generator,
13/// server details, handler, ping interval, and transport options.
14#[derive(Clone)]
15pub struct AppState {
16    pub session_store: Arc<dyn SessionStore>,
17    pub id_generator: Arc<dyn IdGenerator>,
18    pub server_details: Arc<InitializeResult>,
19    pub handler: Arc<dyn McpServerHandler>,
20    pub ping_interval: Duration,
21    pub sse_message_endpoint: String,
22    pub transport_options: Arc<TransportOptions>,
23}