pub struct ToolPolicy { /* private fields */ }Expand description
Fast, immutable allowlist used both for catalog filtering and call routing.
Implementations§
Source§impl ToolPolicy
impl ToolPolicy
Sourcepub const fn from_profile(profile: ToolProfile) -> Self
pub const fn from_profile(profile: ToolProfile) -> Self
Build a policy from one curated profile.
Sourcepub fn from_allowed_tools<I, S>(names: I) -> Result<Self>
pub fn from_allowed_tools<I, S>(names: I) -> Result<Self>
Build an exact allowlist. Names are case-sensitive and duplicates are harmless.
Sourcepub fn resolve(
profile: ToolProfile,
allowed_tools: Option<&[String]>,
) -> Result<Self>
pub fn resolve( profile: ToolProfile, allowed_tools: Option<&[String]>, ) -> Result<Self>
Use an explicit allowlist when present, otherwise use the selected profile.
Sourcepub const fn allows_kind(self, kind: ToolKind) -> bool
pub const fn allows_kind(self, kind: ToolKind) -> bool
Typed policy check used after the wire name has been parsed once.
Sourcepub fn allows_call(self, name: &str) -> bool
pub fn allows_call(self, name: &str) -> bool
Whether a registered name may execute. Unified profiles keep the five
former edit tools as hidden aliases so cached clients continue safely;
exact legacy allowlists conversely retain scoped access to EditFiles.
pub const fn allows_call_kind(self, kind: ToolKind) -> bool
pub const fn edit_permissions(self) -> EditPermissionSet
Trait Implementations§
Source§impl Clone for ToolPolicy
impl Clone for ToolPolicy
impl Copy for ToolPolicy
Source§impl Debug for ToolPolicy
impl Debug for ToolPolicy
Source§impl Default for ToolPolicy
impl Default for ToolPolicy
impl Eq for ToolPolicy
Source§impl PartialEq for ToolPolicy
impl PartialEq for ToolPolicy
impl StructuralPartialEq for ToolPolicy
Auto Trait Implementations§
impl Freeze for ToolPolicy
impl RefUnwindSafe for ToolPolicy
impl Send for ToolPolicy
impl Sync for ToolPolicy
impl Unpin for ToolPolicy
impl UnsafeUnpin for ToolPolicy
impl UnwindSafe for ToolPolicy
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more