pub struct ToolCompletionHandler { /* private fields */ }Expand description
Tool argument completion handler
This handler provides completion for tool arguments based on the tool’s input schema and available values.
§Example
use prism_mcp_rs::core::completion::ToolCompletionHandler;
use std::collections::HashMap;
let mut completions = HashMap::new();
completions.insert("file_reader".to_string(), vec![
("path".to_string(), vec!["/home/user/file1.txt".to_string(), "/home/user/file2.txt".to_string()]),
]);
let handler = ToolCompletionHandler::new(completions);Implementations§
Source§impl ToolCompletionHandler
impl ToolCompletionHandler
Sourcepub fn new(
tool_completions: HashMap<String, Vec<(String, Vec<String>)>>,
) -> Self
pub fn new( tool_completions: HashMap<String, Vec<(String, Vec<String>)>>, ) -> Self
Create a new tool completion handler
§Arguments
tool_completions- Map of tool names to argument completions
Sourcepub fn add_tool_argument_completions<S: Into<String>>(
&mut self,
tool_name: S,
argument_name: S,
values: Vec<String>,
)
pub fn add_tool_argument_completions<S: Into<String>>( &mut self, tool_name: S, argument_name: S, values: Vec<String>, )
Add completion values for a tool argument
§Arguments
tool_name- Name of the toolargument_name- Name of the argumentvalues- List of possible values for completion
Sourcepub fn remove_tool_completions(&mut self, tool_name: &str)
pub fn remove_tool_completions(&mut self, tool_name: &str)
Remove completions for a tool
Sourcepub fn supported_reference_types(&self) -> Vec<&str>
pub fn supported_reference_types(&self) -> Vec<&str>
Get supported reference types
Trait Implementations§
Source§impl CompletionHandler for ToolCompletionHandler
impl CompletionHandler for ToolCompletionHandler
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 ToolCompletionHandler
impl RefUnwindSafe for ToolCompletionHandler
impl Send for ToolCompletionHandler
impl Sync for ToolCompletionHandler
impl Unpin for ToolCompletionHandler
impl UnsafeUnpin for ToolCompletionHandler
impl UnwindSafe for ToolCompletionHandler
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].