pub struct AccessVectorRules { /* private fields */ }Expand description
Lookup table for SELinux rules, optimized for fast queries. It maps a [RuleKey]
(source, target, class) to matching rules.
Rules are grouped into three contiguous arrays based on their payload struct:
- [
AccessRule] (av_rules): allow, auditallow, dontaudit. - [
TypeRule] (type_rules): transitions. - [
XpermRule] (xperm_rules): allowxperm, auditallowxperm, dontauditxperm.
Three corresponding HashTables map [RuleKey]s to the index of the first matching rule.
Lookups return an iterator that starts at that index and yields rules until the
key changes. This works because binary policies guarantee rules for the same key
are contiguous.
Trait Implementations§
Source§impl Clone for AccessVectorRules
impl Clone for AccessVectorRules
Source§fn clone(&self) -> AccessVectorRules
fn clone(&self) -> AccessVectorRules
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for AccessVectorRules
impl RefUnwindSafe for AccessVectorRules
impl Send for AccessVectorRules
impl Sync for AccessVectorRules
impl Unpin for AccessVectorRules
impl UnsafeUnpin for AccessVectorRules
impl UnwindSafe for AccessVectorRules
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,
§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
§impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
impl<F, N> FidlIntoNative<Box<N>> for Fwhere
F: FidlIntoNative<N>,
fn fidl_into_native(self) -> Box<N>
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