pub struct ClientCapabilitiesBuilder<S = ClientCapabilitiesBuilderState> { /* private fields */ }
Expand description
Const-generic ClientCapabilities builder with compile-time validation
This builder ensures that capability-specific methods are only available when the corresponding capability is enabled, providing compile-time safety with comprehensive compile-time validation.
Implementations§
Source§impl<S> ClientCapabilitiesBuilder<S>
impl<S> ClientCapabilitiesBuilder<S>
Sourcepub fn build(self) -> ClientCapabilities
pub fn build(self) -> ClientCapabilities
Build the final ClientCapabilities
Consumes the builder and returns the configured ClientCapabilities. All compile-time validations have been enforced during building.
Sourcepub fn with_strict_validation(self) -> Self
pub fn with_strict_validation(self) -> Self
TurboMCP Extension: Enable strict validation mode
When enabled, the builder will perform additional runtime validations on top of the compile-time guarantees.
Sourcepub fn with_negotiator(self, negotiator: CapabilityNegotiator) -> Self
pub fn with_negotiator(self, negotiator: CapabilityNegotiator) -> Self
TurboMCP Extension: Set capability negotiator
Integrates with TurboMCP’s sophisticated capability negotiation system for advanced client-server capability matching.
Source§impl<const R: bool, const S: bool, const E: bool> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<false, R, S, E>>
impl<const R: bool, const S: bool, const E: bool> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<false, R, S, E>>
Sourcepub fn enable_experimental(
self,
) -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<true, R, S, E>>
pub fn enable_experimental( self, ) -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<true, R, S, E>>
Enable experimental capabilities
Transitions the builder to a state where experimental capability methods become available at compile time.
Sourcepub fn enable_experimental_with(
self,
experimental: HashMap<String, Value>,
) -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<true, R, S, E>>
pub fn enable_experimental_with( self, experimental: HashMap<String, Value>, ) -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<true, R, S, E>>
Enable experimental capabilities with specific values
Source§impl<const X: bool, const S: bool, const E: bool> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, false, S, E>>
impl<const X: bool, const S: bool, const E: bool> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, false, S, E>>
Sourcepub fn enable_roots(
self,
) -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, true, S, E>>
pub fn enable_roots( self, ) -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, true, S, E>>
Enable roots capabilities
Source§impl<const X: bool, const R: bool, const E: bool> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, R, false, E>>
impl<const X: bool, const R: bool, const E: bool> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, R, false, E>>
Sourcepub fn enable_sampling(
self,
) -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, R, true, E>>
pub fn enable_sampling( self, ) -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, R, true, E>>
Enable sampling capabilities
Source§impl<const X: bool, const R: bool, const S: bool> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, R, S, false>>
impl<const X: bool, const R: bool, const S: bool> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, R, S, false>>
Sourcepub fn enable_elicitation(
self,
) -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, R, S, true>>
pub fn enable_elicitation( self, ) -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, R, S, true>>
Enable elicitation capabilities
Source§impl<const X: bool, const S: bool, const E: bool> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, true, S, E>>
impl<const X: bool, const S: bool, const E: bool> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<X, true, S, E>>
Sourcepub fn enable_roots_list_changed(self) -> Self
pub fn enable_roots_list_changed(self) -> Self
Enable roots list changed notifications
This method is only available when roots capabilities are enabled, providing compile-time safety.
Source§impl<const R: bool, const S: bool, const E: bool> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<true, R, S, E>>
impl<const R: bool, const S: bool, const E: bool> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<true, R, S, E>>
Sourcepub fn add_experimental_capability<K, V>(self, key: K, value: V) -> Self
pub fn add_experimental_capability<K, V>(self, key: K, value: V) -> Self
Add experimental capability
This method is only available when experimental capabilities are enabled.
Sourcepub fn with_llm_provider(self, provider: &str, version: &str) -> Self
pub fn with_llm_provider(self, provider: &str, version: &str) -> Self
TurboMCP Extension: Add LLM provider metadata
Unique to TurboMCP - metadata about supported LLM providers for sampling.
Sourcepub fn with_ui_capabilities(self, capabilities: Vec<&str>) -> Self
pub fn with_ui_capabilities(self, capabilities: Vec<&str>) -> Self
TurboMCP Extension: Add UI capabilities metadata
Unique to TurboMCP - metadata about UI capabilities for elicitation.
Source§impl ClientCapabilitiesBuilder
Convenience methods for common client capability combinations
impl ClientCapabilitiesBuilder
Convenience methods for common client capability combinations
Sourcepub fn full_featured() -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<true, true, true, true>>
pub fn full_featured() -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<true, true, true, true>>
TurboMCP Extension: Create a full-featured client configuration
Enables all standard capabilities with TurboMCP optimizations.
Sourcepub fn minimal() -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<false, false, true, false>>
pub fn minimal() -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<false, false, true, false>>
Create a minimal client configuration
Only enables sampling capability for basic MCP compliance.
Sourcepub fn sampling_focused() -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<true, false, true, false>>
pub fn sampling_focused() -> ClientCapabilitiesBuilder<ClientCapabilitiesBuilderState<true, false, true, false>>
Create a sampling-focused client configuration
Optimized for clients that primarily handle sampling requests.
Trait Implementations§
Source§impl<S: Clone> Clone for ClientCapabilitiesBuilder<S>
impl<S: Clone> Clone for ClientCapabilitiesBuilder<S>
Source§fn clone(&self) -> ClientCapabilitiesBuilder<S>
fn clone(&self) -> ClientCapabilitiesBuilder<S>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more