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.
Implementations§
Source§impl AccessVectorRules
impl AccessVectorRules
Sourcepub fn type_rules(&self) -> &[TypeRule]
pub fn type_rules(&self) -> &[TypeRule]
Returns the type transition, change, and member rules.
Sourcepub fn xperm_rules(&self) -> &[XpermRule]
pub fn xperm_rules(&self) -> &[XpermRule]
Returns the extended permission rules.
Sourcepub fn rule_order(&self) -> &[RuleKind]
pub fn rule_order(&self) -> &[RuleKind]
Returns the order of rule kinds as parsed from the policy.
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 moreSource§impl Debug for AccessVectorRules
impl Debug for AccessVectorRules
impl Eq for AccessVectorRules
Source§impl PartialEq for AccessVectorRules
impl PartialEq for AccessVectorRules
Source§fn eq(&self, other: &AccessVectorRules) -> bool
fn eq(&self, other: &AccessVectorRules) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for AccessVectorRules
Auto 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,
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
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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<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