pub struct ResourceUriCompletionHandler { /* private fields */ }Expand description
Resource URI completion handler
This handler provides completion for resource URIs based on resource templates. It can suggest URI completions by analyzing URI patterns and available resources.
§Example
use prism_mcp_rs::core::completion::ResourceUriCompletionHandler;
use prism_mcp_rs::protocol::types::ResourceTemplate;
let templates = vec![
ResourceTemplate::new("file:///docs/{category}/{filename}".to_string(), "Documentation".to_string()),
ResourceTemplate::new("db:/// {table}/{id}".to_string(), "Database Records".to_string()),
];
let handler = ResourceUriCompletionHandler::new(templates);Implementations§
Source§impl ResourceUriCompletionHandler
impl ResourceUriCompletionHandler
Sourcepub fn new(templates: Vec<ResourceTemplate>) -> Self
pub fn new(templates: Vec<ResourceTemplate>) -> Self
Create a new resource URI completion handler
§Arguments
templates- List of resource templates to use for completion
Sourcepub fn add_static_resource<S: Into<String>>(&mut self, uri: S)
pub fn add_static_resource<S: Into<String>>(&mut self, uri: S)
Sourcepub fn extract_template_variables(&self, template: &str) -> Vec<String>
pub fn extract_template_variables(&self, template: &str) -> Vec<String>
Extract template variables from a URI template
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 ResourceUriCompletionHandler
impl CompletionHandler for ResourceUriCompletionHandler
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 ResourceUriCompletionHandler
impl RefUnwindSafe for ResourceUriCompletionHandler
impl Send for ResourceUriCompletionHandler
impl Sync for ResourceUriCompletionHandler
impl Unpin for ResourceUriCompletionHandler
impl UnsafeUnpin for ResourceUriCompletionHandler
impl UnwindSafe for ResourceUriCompletionHandler
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].