Skip to main content

Unadvertised

Struct Unadvertised 

Source
pub struct Unadvertised<S> { /* private fields */ }
Expand description

A ToolSource wrapper that dispatches tools without advertising them. specs() is always empty and the inner source’s catalog events are drained but not forwarded; get() delegates unchanged, so every inner tool remains invocable by exact name.

Constructed via ToolSource::unadvertised or directly.

Implementations§

Source§

impl<S> Unadvertised<S>

Source

pub fn new(inner: S) -> Self

Creates a new dispatch-only wrapper.

Trait Implementations§

Source§

impl<S> ToolSource for Unadvertised<S>
where S: ToolSource,

Source§

fn specs(&self) -> Vec<ToolSpec>

Returns the current spec for every tool in this source.
Source§

fn get(&self, name: &ToolName) -> Option<Arc<dyn Tool>>

Looks up a tool by name, returning None if not present.
Source§

fn drain_catalog_events(&self) -> Vec<ToolCatalogEvent>

Drains pending catalog change events. Static sources return an empty list; dynamic sources surface added/removed/changed batches that the loop forwards to the model on the next turn.
Source§

fn prefixed(self, prefix: impl Into<String>) -> Prefixed<Self>
where Self: Sized,

Wraps this source so every advertised tool name is prefixed with <prefix>_. Useful for mounting the same source under multiple namespaces, or for avoiding collisions between MCP catalogs. Read more
Source§

fn filtered<F>(self, predicate: F) -> Filtered<Self, F>
where Self: Sized, F: Fn(&ToolName) -> bool + Send + Sync + 'static,

Wraps this source so only tools whose name passes predicate are advertised and resolvable. Tools rejected by the predicate are invisible to the model and return None on lookup. Read more
Source§

fn renamed<I>(self, mapping: I) -> Renamed<Self>
where Self: Sized, I: IntoIterator<Item = (ToolName, ToolName)>,

Wraps this source with a name remapping. Each (original, new) pair in mapping causes the tool to be advertised as new and resolved from new back to original on lookup. Tools not in the mapping pass through unchanged. Read more
Source§

fn unadvertised(self) -> Unadvertised<Self>
where Self: Sized,

Wraps this source so its tools stay resolvable by name but are never advertised: specs() is empty and catalog events are swallowed, while get() passes through. Use this for dispatch-only catalogs — e.g. children of a composition tool that the model should invoke through a script rather than see individually. Read more

Auto Trait Implementations§

§

impl<S> Freeze for Unadvertised<S>
where S: Freeze,

§

impl<S> RefUnwindSafe for Unadvertised<S>
where S: RefUnwindSafe,

§

impl<S> Send for Unadvertised<S>
where S: Send,

§

impl<S> Sync for Unadvertised<S>
where S: Sync,

§

impl<S> Unpin for Unadvertised<S>
where S: Unpin,

§

impl<S> UnsafeUnpin for Unadvertised<S>
where S: UnsafeUnpin,

§

impl<S> UnwindSafe for Unadvertised<S>
where S: UnwindSafe,

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
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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.

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.