1mod market;
4mod reference;
5mod subscription;
6mod system;
7mod trade_read;
8mod trade_write;
9
10use crate::state::ServerState;
11
12#[derive(Clone)]
15pub struct FutuServer {
16 pub state: ServerState,
17}
18
19impl FutuServer {
20 pub fn new(state: ServerState) -> Self {
21 Self { state }
22 }
23}
24
25impl FutuServer {
26 pub(crate) fn tool_router() -> rmcp::handler::server::router::tool::ToolRouter<Self> {
27 Self::system_tool_router()
28 + Self::market_tool_router()
29 + Self::reference_tool_router()
30 + Self::subscription_tool_router()
31 + Self::trade_read_tool_router()
32 + Self::trade_write_tool_router()
33 }
34}
35
36#[rmcp::tool_handler(router = Self::tool_router())]
37impl rmcp::ServerHandler for FutuServer {}
38
39#[cfg(test)]
40mod tests;