Public declaration syntax from forge-rs/crates/forge-mcp/src/server.rs Original source SHA-256: 0a67d2a153686452909756abc7d118974403346bc9d0c952de7f6886f39187c5 Function bodies and constant values are omitted. This is not the complete implementation. Source line 48 pub type ToolHandler = Box ForgeMcpResult + Send + Sync>; Source line 55 pub type ResourceHandler = Box ForgeMcpResult + Send + Sync>; Source line 61 pub type PromptHandler = Box) -> ForgeMcpResult + Send + Sync>; Source line 80 #[derive(Debug, Clone, PartialEq, Eq)] pub struct McpServerConfig { /// Human-readable server name. pub name: String, /// Server version string. pub version: String, /// Capabilities this server advertises. pub capabilities: McpCapabilities } Source line 120 pub struct McpServer { } Source line 154 pub fn new(config: McpServerConfig) -> Self; Source line 194 pub fn register_tool(&mut self, descriptor: McpToolDescriptor, handler: ToolHandler); Source line 232 pub fn register_resource(&mut self, resource: McpResource, handler: ResourceHandler); Source line 269 pub fn register_prompt(&mut self, prompt: McpPrompt, handler: PromptHandler); Source line 310 pub fn handle_request(&self, request: &McpRequest) -> McpResponse; Source line 376 pub async fn serve(&self, transport: &dyn McpTransport) -> ForgeMcpResult<()>; Source line 422 pub fn config(&self) -> &McpServerConfig; Source line 427 pub fn tool_count(&self) -> usize; Source line 432 pub fn resource_count(&self) -> usize; Source line 437 pub fn prompt_count(&self) -> usize;