turbomcp_server/handlers/traits/
sampling.rs1use async_trait::async_trait;
4use turbomcp_protocol::RequestContext;
5use turbomcp_protocol::types::{CreateMessageRequest, CreateMessageResult, SamplingCapabilities};
6
7use crate::ServerResult;
8
9#[async_trait]
11pub trait SamplingHandler: Send + Sync {
12 async fn handle(
20 &self,
21 request_id: String,
22 request: CreateMessageRequest,
23 ctx: RequestContext,
24 ) -> ServerResult<CreateMessageResult>;
25
26 fn sampling_capabilities(&self) -> SamplingCapabilities {
28 SamplingCapabilities
29 }
30}