Skip to main content

FilesystemDecision

Enum FilesystemDecision 

Source
pub enum FilesystemDecision {
    Read,
    Write,
    Deny,
    ExternallyEnforced,
}
Expand description

The result of evaluating a filesystem request against a policy.

ExternallyEnforced is intentionally distinct from AccessMode::Deny. It tells a backend that Cageforge does not make the local decision because another trusted sandbox owns the filesystem boundary.

This type intentionally does not implement Ord. Local access decisions and external ownership are not one total permission ordering; callers must handle ExternallyEnforced explicitly instead of combining decisions with min or max.

Variants§

§

Read

Permit reads but not modifications.

§

Write

Permit reads and modifications.

§

Deny

Permit neither reads nor modifications.

§

ExternallyEnforced

Defer enforcement to the trusted external sandbox.

Implementations§

Source§

impl FilesystemDecision

Source

pub const fn as_access_mode(self) -> Option<AccessMode>

Returns the local access mode, or None when another sandbox enforces it.

Source

pub const fn is_externally_enforced(self) -> bool

Returns whether local filesystem enforcement is delegated elsewhere.

Trait Implementations§

Source§

impl Clone for FilesystemDecision

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 Copy for FilesystemDecision

Source§

impl Debug for FilesystemDecision

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Eq for FilesystemDecision

Source§

impl From<AccessMode> for FilesystemDecision

Source§

fn from(access: AccessMode) -> Self

Converts to this type from the input type.
Source§

impl Hash for FilesystemDecision

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for FilesystemDecision

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for FilesystemDecision

Auto Trait Implementations§

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> 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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.