use crate::sampling::SamplingHandler;
use std::sync::Arc;
use turbomcp_protocol::types::SamplingCapabilities;
impl<T: turbomcp_transport::Transport + 'static> super::super::core::Client<T> {
pub fn set_sampling_handler(&self, handler: Arc<dyn SamplingHandler>) {
*self.inner.sampling_handler.lock() = Some(handler);
}
#[must_use]
pub fn has_sampling_handler(&self) -> bool {
self.inner.sampling_handler.lock().is_some()
}
pub fn remove_sampling_handler(&self) {
*self.inner.sampling_handler.lock() = None;
}
pub(crate) fn get_sampling_capabilities(&self) -> Option<SamplingCapabilities> {
if self.inner.sampling_handler.lock().is_some() {
Some(SamplingCapabilities::default())
} else {
None
}
}
}