Struct kernel::storage_permissions::StoragePermissions
source · pub struct StoragePermissions(/* private fields */);
Expand description
Permissions for accessing persistent storage.
This is a general type capable of representing permissions in different ways. Users of storage permissions do not need to understand the different ways permissions are stored internally. Instead, layers that need to enforce permissions only use the following API:
ⓘ
fn StoragePermissions::check_read_permission(&self, stored_id: u32) -> bool;
fn StoragePermissions::check_modify_permission(&self, stored_id: u32) -> bool;
fn StoragePermissions::get_write_id(&self) -> Option<u32>;
Implementations§
source§impl StoragePermissions
impl StoragePermissions
pub fn new_self_only( short_id_fixed: NonZeroU32, _cap: &dyn ApplicationStorageCapability, ) -> Self
pub fn new_fixed_size( app_id: NonZeroU32, write_permission: bool, read_modify_self: bool, read_count: usize, read_permissions: [u32; 8], modify_count: usize, modify_permissions: [u32; 8], _cap: &dyn ApplicationStorageCapability, ) -> Self
pub fn new_listed( app_id: NonZeroU32, write_permission: bool, read_modify_self: bool, read_permissions: &'static [u32], modify_permissions: &'static [u32], _cap: &dyn ApplicationStorageCapability, ) -> Self
pub fn new_kernel(_cap: &dyn KerneluserStorageCapability) -> Self
pub fn new_null() -> Self
sourcepub fn check_read_permission(&self, stored_id: u32) -> bool
pub fn check_read_permission(&self, stored_id: u32) -> bool
Check if these storage permissions grant read access to the stored state
marked with identifier stored_id
.
sourcepub fn check_modify_permission(&self, stored_id: u32) -> bool
pub fn check_modify_permission(&self, stored_id: u32) -> bool
Check if these storage permissions grant modify access to the stored
state marked with identifier stored_id
.
sourcepub fn get_write_id(&self) -> Option<u32>
pub fn get_write_id(&self) -> Option<u32>
Retrieve the identifier to use when storing state, if the application
has permission to write. Returns None
if the application cannot write.
Trait Implementations§
source§impl Clone for StoragePermissions
impl Clone for StoragePermissions
source§fn clone(&self) -> StoragePermissions
fn clone(&self) -> StoragePermissions
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreimpl Copy for StoragePermissions
Auto Trait Implementations§
impl Freeze for StoragePermissions
impl RefUnwindSafe for StoragePermissions
impl Send for StoragePermissions
impl Sync for StoragePermissions
impl Unpin for StoragePermissions
impl UnwindSafe for StoragePermissions
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,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)