Skip to main content

CompositeCompletionHandler

Struct CompositeCompletionHandler 

Source
pub struct CompositeCompletionHandler { /* private fields */ }
Expand description

Combined completion handler that delegates to different handlers based on reference type

This handler allows you to combine multiple completion handlers and route completion requests to the appropriate handler based on the reference type.

§Example

use prism_mcp_rs::core::completion::*;
use std::collections::HashMap;

let prompt_handler = PromptCompletionHandler::new(vec!["analyze".to_string()]);
let resource_handler = ResourceUriCompletionHandler::new(vec![]);
let tool_handler = ToolCompletionHandler::new(HashMap::new());

let combined = CompositeCompletionHandler::new()
.with_prompt_handler(prompt_handler)
.with_resource_handler(resource_handler)
.with_tool_handler(tool_handler);

Implementations§

Source§

impl CompositeCompletionHandler

Source

pub fn new() -> Self

Create a new combined completion handler

Source

pub fn add_handler<H>( &mut self, reference_type: String, handler: H, ) -> &mut Self
where H: CompletionHandler + 'static,

Add a handler for a specific reference type

§Arguments
  • reference_type - The reference type this handler supports (e.g., “ref/prompt”)
  • handler - The completion handler
Source

pub fn with_handler<H>( self, reference_type: impl Into<String>, handler: H, ) -> Self
where H: CompletionHandler + 'static,

Add a handler for a specific reference type (builder pattern)

§Arguments
  • reference_type - The reference type this handler supports (e.g., “ref/prompt”)
  • handler - The completion handler
Source

pub fn with_prompt_handler<H: CompletionHandler + 'static>( self, handler: H, ) -> Self

Set the prompt completion handler

Source

pub fn with_resource_handler<H: CompletionHandler + 'static>( self, handler: H, ) -> Self

Set the resource completion handler

Source

pub fn with_tool_handler<H: CompletionHandler + 'static>( self, handler: H, ) -> Self

Set the tool completion handler

Trait Implementations§

Source§

impl CompletionHandler for CompositeCompletionHandler

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,

Generate completion suggestions Read more
Source§

impl Debug for CompositeCompletionHandler

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for CompositeCompletionHandler

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> IntoRequest<T> for T

§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<L> LayerExt<L> for L

§

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].
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more