Skip to main content

SecretAccess

Trait SecretAccess 

Source
pub trait SecretAccess<T: Zeroize + ?Sized> {
    // Required methods
    fn access<F, R>(&self, f: F) -> R
       where F: FnOnce(&T) -> R;
    fn access_mut<F, R>(&mut self, f: F) -> R
       where F: FnOnce(&mut T) -> R;
}
Available on Unix and crate feature sec_mem only.
Expand description

Trait for types that can provide access to underlying data, whether protected or raw

Required Methods§

Source

fn access<F, R>(&self, f: F) -> R
where F: FnOnce(&T) -> R,

Access the underlying data for reading

Source

fn access_mut<F, R>(&mut self, f: F) -> R
where F: FnOnce(&mut T) -> R,

Access the underlying data for mutation

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl SecretAccess<[u8]> for &[u8]

Source§

fn access<F, R>(&self, f: F) -> R
where F: FnOnce(&[u8]) -> R,

Source§

fn access_mut<F, R>(&mut self, _f: F) -> R
where F: FnOnce(&mut [u8]) -> R,

Source§

impl SecretAccess<[u8]> for &mut [u8]

Source§

fn access<F, R>(&self, f: F) -> R
where F: FnOnce(&[u8]) -> R,

Source§

fn access_mut<F, R>(&mut self, f: F) -> R
where F: FnOnce(&mut [u8]) -> R,

Source§

impl SecretAccess<[u8]> for Box<[u8]>

Source§

fn access<F, R>(&self, f: F) -> R
where F: FnOnce(&[u8]) -> R,

Source§

fn access_mut<F, R>(&mut self, f: F) -> R
where F: FnOnce(&mut [u8]) -> R,

Source§

impl<T: Zeroize, const N: usize> SecretAccess<[T; N]> for [T; N]

Source§

fn access<F, R>(&self, f: F) -> R
where F: FnOnce(&[T; N]) -> R,

Source§

fn access_mut<F, R>(&mut self, f: F) -> R
where F: FnOnce(&mut [T; N]) -> R,

Source§

impl<T: Zeroize> SecretAccess<T> for Box<T>

Source§

fn access<F, R>(&self, f: F) -> R
where F: FnOnce(&T) -> R,

Source§

fn access_mut<F, R>(&mut self, f: F) -> R
where F: FnOnce(&mut T) -> R,

Source§

impl<T: Zeroize> SecretAccess<[T]> for Vec<T>
where [T]: Zeroize,

Source§

fn access<F, R>(&self, f: F) -> R
where F: FnOnce(&[T]) -> R,

Source§

fn access_mut<F, R>(&mut self, f: F) -> R
where F: FnOnce(&mut [T]) -> R,

Source§

impl<T: Zeroize> SecretAccess<[T]> for [T]
where [T]: Zeroize,

Source§

fn access<F, R>(&self, f: F) -> R
where F: FnOnce(&[T]) -> R,

Source§

fn access_mut<F, R>(&mut self, f: F) -> R
where F: FnOnce(&mut [T]) -> R,

Source§

impl<const N: usize> SecretAccess<[u8]> for [u8; N]

Source§

fn access<F, R>(&self, f: F) -> R
where F: FnOnce(&[u8]) -> R,

Source§

fn access_mut<F, R>(&mut self, f: F) -> R
where F: FnOnce(&mut [u8]) -> R,

Implementors§

Source§

impl SecretAccess<[u8]> for SecMem<Vec<u8>>

Source§

impl<T: Zeroize> SecretAccess<T> for SecMem<T>

Source§

impl<const N: usize> SecretAccess<[u8]> for SecMem<[u8; N]>