turbomcp_server/handlers/traits/
prompt.rs1use async_trait::async_trait;
4use serde_json::Value;
5use std::collections::HashMap;
6use turbomcp_protocol::RequestContext;
7use turbomcp_protocol::types::{GetPromptRequest, GetPromptResult, Prompt};
8
9use crate::ServerResult;
10
11#[async_trait]
13pub trait PromptHandler: Send + Sync {
14 async fn handle(
16 &self,
17 request: GetPromptRequest,
18 ctx: RequestContext,
19 ) -> ServerResult<GetPromptResult>;
20
21 fn prompt_definition(&self) -> Prompt;
23
24 fn validate_arguments(&self, _args: &HashMap<String, Value>) -> ServerResult<()> {
26 Ok(())
27 }
28}