pub struct SchemaCompletionHandler { /* private fields */ }Expand description
Schema-based completion handler
Provides completion suggestions based on JSON schema definitions. Useful for tool parameters that have enum constraints or specific patterns.
§Features
- Enum value completion
- Pattern-based completion
- Type-aware suggestions
- Format-specific completions (email, date, etc.)
§Example
use prism_mcp_rs::core::completion_handlers::SchemaCompletionHandler;
use serde_json::json;
let schema = json!({
"type": "object",
"properties": {
"priority": {
"type": "string",
"enum": ["low", "medium", "high"]
}
}
});
let handler = SchemaCompletionHandler::new(schema);Implementations§
Trait Implementations§
Source§impl CompletionHandler for SchemaCompletionHandler
impl CompletionHandler for SchemaCompletionHandler
Source§fn complete<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_reference: &'life1 CompletionReference,
argument: &'life2 CompletionArgument,
_context: Option<&'life3 CompletionContext>,
) -> Pin<Box<dyn Future<Output = McpResult<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn complete<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
_reference: &'life1 CompletionReference,
argument: &'life2 CompletionArgument,
_context: Option<&'life3 CompletionContext>,
) -> Pin<Box<dyn Future<Output = McpResult<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Generate completion suggestions Read more
Auto Trait Implementations§
impl Freeze for SchemaCompletionHandler
impl RefUnwindSafe for SchemaCompletionHandler
impl Send for SchemaCompletionHandler
impl Sync for SchemaCompletionHandler
impl Unpin for SchemaCompletionHandler
impl UnsafeUnpin for SchemaCompletionHandler
impl UnwindSafe for SchemaCompletionHandler
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].