Struct Protection

Source
pub struct Protection(/* private fields */);
Expand description

Represents memory protection flags.

This structure encapsulates read, write, and execute permissions for memory regions in a compact bit representation.

Implementations§

Source§

impl Protection

Source

pub const READ_BIT: u8 = 1u8

Bit flag representing read permission.

Source

pub const WRITE_BIT: u8 = 2u8

Bit flag representing write permission.

Source

pub const EXECUTE_BIT: u8 = 4u8

Bit flag representing execute permission.

Source

pub const NONE: Self

No memory access permissions.

Source

pub const READ: Self

Read-only memory access.

Source

pub const WRITE: Self

Write-only memory access.

Source

pub const EXECUTE: Self

Execute-only memory access.

Source

pub const READ_WRITE: Self

Read and write memory access.

Source

pub const READ_EXECUTE: Self

Read and execute memory access.

Source

pub const WRITE_EXECUTE: Self

Write and execute memory access.

Source

pub const READ_WRITE_EXECUTE: Self

Full memory access (read, write, and execute).

Source

pub const fn new(read: bool, write: bool, execute: bool) -> Self

Creates a new protection type with specified permissions.

§Parameters
  • Read: Whether read permission is granted
  • Write: Whether write permission is granted
  • Execute: Whether execute permission is granted
§Returns

A new protection type with the specified permissions.

Source

pub const fn set_read(self, value: bool) -> Self

Sets or clears the read permission.

§Parameters
  • Value: Whether to grant or revoke read permission
§Returns

A new protection type with the modified read permission.

Source

pub const fn set_write(self, value: bool) -> Self

Sets or clears the write permission.

§Parameters
  • Value: Whether to grant or revoke write permission
§Returns

A new protection type with the modified write permission.

Source

pub const fn set_execute(self, value: bool) -> Self

Sets or clears the execute permission.

§Parameters
  • Value: Whether to grant or revoke execute permission
§Returns

A new protection type with the modified execute permission.

Source

pub const fn get_read(&self) -> bool

Checks if read permission is granted.

§Returns

true if read permission is granted, false otherwise.

Source

pub const fn get_write(&self) -> bool

Checks if write permission is granted.

§Returns

true if write permission is granted, false otherwise.

Source

pub const fn get_execute(&self) -> bool

Checks if execute permission is granted.

§Returns

true if execute permission is granted, false otherwise.

Source

pub const fn as_u8(&self) -> u8

Converts the protection type to its raw u8 representation.

§Returns

The raw byte value representing the protection flags.

Source

pub const fn from_u8(value: u8) -> Self

Creates a new protection type from a raw u8 value.

§Parameters
  • Value: The raw protection flags
§Returns

A new protection type with the specified flags.

Trait Implementations§

Source§

impl Clone for Protection

Source§

fn clone(&self) -> Protection

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Protection

Source§

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

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

impl From<Protection> for u8

Source§

fn from(protection: Protection) -> Self

Converts to this type from the input type.
Source§

impl From<u8> for Protection

Source§

fn from(protection: u8) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for Protection

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Protection

Source§

impl Eq for Protection

Source§

impl StructuralPartialEq for Protection

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

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.