pub struct ServerCapabilitiesBuilder<S = ServerCapabilitiesBuilderState> { /* private fields */ }
Expand description
Const-generic ServerCapabilities 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 compile-time validation.
Implementations§
Source§impl<S> ServerCapabilitiesBuilder<S>
impl<S> ServerCapabilitiesBuilder<S>
Sourcepub fn build(self) -> ServerCapabilities
pub fn build(self) -> ServerCapabilities
Build the final ServerCapabilities
Consumes the builder and returns the configured ServerCapabilities. 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 L: bool, const C: bool, const P: bool, const R: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<false, L, C, P, R, T>>
impl<const L: bool, const C: bool, const P: bool, const R: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<false, L, C, P, R, T>>
Sourcepub fn enable_experimental(
self,
) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<true, L, C, P, R, T>>
pub fn enable_experimental( self, ) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<true, L, C, P, R, T>>
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>,
) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<true, L, C, P, R, T>>
pub fn enable_experimental_with( self, experimental: HashMap<String, Value>, ) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<true, L, C, P, R, T>>
Enable experimental capabilities with specific values
Source§impl<const E: bool, const C: bool, const P: bool, const R: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, false, C, P, R, T>>
impl<const E: bool, const C: bool, const P: bool, const R: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, false, C, P, R, T>>
Sourcepub fn enable_logging(
self,
) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, true, C, P, R, T>>
pub fn enable_logging( self, ) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, true, C, P, R, T>>
Enable logging capabilities
Source§impl<const E: bool, const L: bool, const P: bool, const R: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, false, P, R, T>>
impl<const E: bool, const L: bool, const P: bool, const R: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, false, P, R, T>>
Sourcepub fn enable_completions(
self,
) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, true, P, R, T>>
pub fn enable_completions( self, ) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, true, P, R, T>>
Enable completion capabilities
Source§impl<const E: bool, const L: bool, const C: bool, const R: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, false, R, T>>
impl<const E: bool, const L: bool, const C: bool, const R: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, false, R, T>>
Sourcepub fn enable_prompts(
self,
) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, true, R, T>>
pub fn enable_prompts( self, ) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, true, R, T>>
Enable prompts capabilities
Source§impl<const E: bool, const L: bool, const C: bool, const P: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, P, false, T>>
impl<const E: bool, const L: bool, const C: bool, const P: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, P, false, T>>
Sourcepub fn enable_resources(
self,
) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, P, true, T>>
pub fn enable_resources( self, ) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, P, true, T>>
Enable resources capabilities
Source§impl<const E: bool, const L: bool, const C: bool, const P: bool, const R: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, P, R, false>>
impl<const E: bool, const L: bool, const C: bool, const P: bool, const R: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, P, R, false>>
Sourcepub fn enable_tools(
self,
) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, P, R, true>>
pub fn enable_tools( self, ) -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, P, R, true>>
Enable tools capabilities
Source§impl<const E: bool, const L: bool, const C: bool, const P: bool, const R: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, P, R, true>>
impl<const E: bool, const L: bool, const C: bool, const P: bool, const R: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, P, R, true>>
Sourcepub fn enable_tool_list_changed(self) -> Self
pub fn enable_tool_list_changed(self) -> Self
Enable tool list changed notifications
This method is only available when tools capabilities are enabled, providing advanced compile-time validation.
Source§impl<const E: bool, const L: bool, const C: bool, const R: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, true, R, T>>
impl<const E: bool, const L: bool, const C: bool, const R: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, true, R, T>>
Sourcepub fn enable_prompts_list_changed(self) -> Self
pub fn enable_prompts_list_changed(self) -> Self
Enable prompts list changed notifications
Source§impl<const E: bool, const L: bool, const C: bool, const P: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, P, true, T>>
impl<const E: bool, const L: bool, const C: bool, const P: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<E, L, C, P, true, T>>
Sourcepub fn enable_resources_list_changed(self) -> Self
pub fn enable_resources_list_changed(self) -> Self
Enable resources list changed notifications
Sourcepub fn enable_resources_subscribe(self) -> Self
pub fn enable_resources_subscribe(self) -> Self
Enable resources subscribe capability
Source§impl<const L: bool, const C: bool, const P: bool, const R: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<true, L, C, P, R, T>>
impl<const L: bool, const C: bool, const P: bool, const R: bool, const T: bool> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<true, L, C, P, R, T>>
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_simd_optimization(self, level: &str) -> Self
pub fn with_simd_optimization(self, level: &str) -> Self
TurboMCP Extension: Add SIMD optimization hint
Unique to TurboMCP - hints about SIMD capabilities for performance optimization.
Sourcepub fn with_enterprise_security(self, enabled: bool) -> Self
pub fn with_enterprise_security(self, enabled: bool) -> Self
TurboMCP Extension: Add enterprise security metadata
Unique to TurboMCP - metadata about security capabilities.
Source§impl ServerCapabilitiesBuilder
Convenience methods for common capability combinations
impl ServerCapabilitiesBuilder
Convenience methods for common capability combinations
Sourcepub fn full_featured() -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<true, true, true, true, true, true>>
pub fn full_featured() -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<true, true, true, true, true, true>>
TurboMCP Extension: Create a full-featured server configuration
Enables all standard capabilities with TurboMCP optimizations.
Sourcepub fn minimal() -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<false, false, false, false, false, true>>
pub fn minimal() -> ServerCapabilitiesBuilder<ServerCapabilitiesBuilderState<false, false, false, false, false, true>>
Create a minimal server configuration
Only enables tools capability for basic MCP compliance.
Trait Implementations§
Source§impl<S: Clone> Clone for ServerCapabilitiesBuilder<S>
impl<S: Clone> Clone for ServerCapabilitiesBuilder<S>
Source§fn clone(&self) -> ServerCapabilitiesBuilder<S>
fn clone(&self) -> ServerCapabilitiesBuilder<S>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more