Skip to main content

Toolset

Struct Toolset 

Source
pub struct Toolset<D = ()>
where D: Send + Sync + 'static,
{ /* private fields */ }
Expand description

Reusable, append-only collection of tools.

D is the same typed-deps parameter used by Tool and ToolRegistry. A Toolset<D> may only be installed into a ToolRegistry<D>, preserving the operator’s dependency boundary at compile time.

Implementations§

Source§

impl<D> Toolset<D>
where D: Send + Sync + 'static,

Source

pub fn new(id: impl Into<String>) -> Result<Self>

Create an empty toolset with a stable id.

The id is operator-facing metadata used by capability manifests, test fixtures, and durable-runtime activity names. It is not sent to the model and does not alter tool names.

Source

pub fn id(&self) -> &str

Stable toolset id.

Source

pub fn len(&self) -> usize

Number of tools in the set.

Source

pub fn is_empty(&self) -> bool

True when no tools are present.

Source

pub fn names(&self) -> impl Iterator<Item = &str>

Iterate tool names in stable lexical order.

Source

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

Borrow a tool by exact name.

Source

pub fn tool_specs(&self) -> Arc<[ToolSpec]>

Return model-facing tool specs in stable lexical order.

This is an inspection helper for tests and capability manifests. Agents should still derive their final advertised tool catalogue from the installed ToolRegistry.

Source

pub fn register(self, tool: Arc<dyn Tool<D>>) -> Result<Self>

Append one tool to the set.

Reach for this when assembling a reusable bundle the operator installs into multiple ToolRegistry<D> instances — Toolset::new("support").register(tool_a)?.register(tool_b)? .install_into(registry)? is the canonical capability-bundle path. Duplicate names are rejected: a toolset with ambiguous names cannot be installed safely because later restriction and approval policies address tools by exact name.

Source

pub fn restricted_to(&self, allowed: &[&str]) -> Result<Self>

Produce a strict-name restricted view of this set.

Names absent from the toolset are configuration errors. Empty names and duplicate names are also rejected, keeping the declaration surface deterministic and typo-safe.

Source§

impl<D> Toolset<D>
where D: Clone + Send + Sync + 'static,

Source

pub fn install_into(&self, registry: ToolRegistry<D>) -> Result<ToolRegistry<D>>

Install this set into an existing registry.

The supplied registry’s deps and layer stack are preserved. Registration remains append-only; name collisions with tools already present in the registry surface as Error::Config from ToolRegistry::register.

Trait Implementations§

Source§

impl<D> Clone for Toolset<D>
where D: Send + Sync + 'static,

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<D> Debug for Toolset<D>
where D: Send + Sync + 'static,

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<D> Freeze for Toolset<D>

§

impl<D = ()> !RefUnwindSafe for Toolset<D>

§

impl<D> Send for Toolset<D>

§

impl<D> Sync for Toolset<D>

§

impl<D> Unpin for Toolset<D>

§

impl<D> UnsafeUnpin for Toolset<D>

§

impl<D = ()> !UnwindSafe for Toolset<D>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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.

Source§

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

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: 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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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