#[non_exhaustive]pub enum AllowOperationMatching {
Legacy,
Glob,
}Expand description
How RoleConfig::allow entries are matched against operation names.
RoleConfig::deny is always glob-matched and is deliberately not
covered by this switch: widening a deny can only ever remove capability,
so it is safe to enable unconditionally. Widening an allow, by contrast,
grants access, so it stays opt-in.
TOML wire values are kebab-case: "legacy" (default) and "glob".
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Legacy
Exact string equality, plus the literal "*" meaning “all operations”.
A * inside any other entry is treated as an ordinary character, so
"jira_get_*" grants only an operation named exactly jira_get_* and
never acts as a pattern. RbacPolicy::new warns about such entries.
Glob
Full glob matching via the same matcher used for hosts and
argument_allowlists.tool selectors. * is the only metacharacter and
matching stays case-sensitive, so glob-free entries still behave as
exact matches.
Trait Implementations§
Source§impl Clone for AllowOperationMatching
impl Clone for AllowOperationMatching
Source§fn clone(&self) -> AllowOperationMatching
fn clone(&self) -> AllowOperationMatching
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for AllowOperationMatching
Source§impl Debug for AllowOperationMatching
impl Debug for AllowOperationMatching
Source§impl Default for AllowOperationMatching
impl Default for AllowOperationMatching
Source§fn default() -> AllowOperationMatching
fn default() -> AllowOperationMatching
Source§impl<'de> Deserialize<'de> for AllowOperationMatching
impl<'de> Deserialize<'de> for AllowOperationMatching
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for AllowOperationMatching
Source§impl PartialEq for AllowOperationMatching
impl PartialEq for AllowOperationMatching
impl StructuralPartialEq for AllowOperationMatching
Auto Trait Implementations§
impl Freeze for AllowOperationMatching
impl RefUnwindSafe for AllowOperationMatching
impl Send for AllowOperationMatching
impl Sync for AllowOperationMatching
impl Unpin for AllowOperationMatching
impl UnsafeUnpin for AllowOperationMatching
impl UnwindSafe for AllowOperationMatching
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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
key and return true if they are equal.