pub struct PromptCompletionHandler { /* private fields */ }Expand description
Default prompt completion handler with fuzzy matching
This handler provides basic completion for prompt names by matching against a predefined list of available prompts.
§Example
use prism_mcp_rs::core::completion::PromptCompletionHandler;
let prompts = vec![
"analyze_data".to_string(),
"analyze_text".to_string(),
"create_report".to_string(),
];
let handler = PromptCompletionHandler::new(prompts);Implementations§
Source§impl PromptCompletionHandler
impl PromptCompletionHandler
Sourcepub fn add_prompt<S: Into<String>>(&mut self, name: S)
pub fn add_prompt<S: Into<String>>(&mut self, name: S)
Add a prompt to the completion list
Sourcepub fn remove_prompt(&mut self, name: &str)
pub fn remove_prompt(&mut self, name: &str)
Remove a prompt from the completion list
Sourcepub fn add_argument_completions(
&mut self,
prompt_name: &str,
argument_name: &str,
completions: Vec<String>,
)
pub fn add_argument_completions( &mut self, prompt_name: &str, argument_name: &str, completions: Vec<String>, )
Add argument completions for a specific prompt
Sourcepub fn fuzzy_match(&self, items: &[String], query: &str) -> Vec<String>
pub fn fuzzy_match(&self, items: &[String], query: &str) -> Vec<String>
Perform fuzzy matching on a list of strings
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 PromptCompletionHandler
impl CompletionHandler for PromptCompletionHandler
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 PromptCompletionHandler
impl RefUnwindSafe for PromptCompletionHandler
impl Send for PromptCompletionHandler
impl Sync for PromptCompletionHandler
impl Unpin for PromptCompletionHandler
impl UnsafeUnpin for PromptCompletionHandler
impl UnwindSafe for PromptCompletionHandler
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].