Struct seckey::SecKey
[−]
[src]
pub struct SecKey<T> { /* fields omitted */ }
Methods
impl<T> SecKey<T>
[src]
pub fn new(t: T) -> Result<SecKey<T>, T>
[src]
use seckey::{ zero, SecKey }; let k = SecKey::new([1, 2, 3]) .unwrap_or_else(|mut val| { // NOTE should zero it zero(&mut val); panic!() }); assert_eq!([1, 2, 3], *k.read());
pub unsafe fn from_ptr(t: *const T) -> Option<SecKey<T>>
[src]
use seckey::SecKey; let mut v = [1, 2, 3]; let k = unsafe { SecKey::from_ptr(&v).unwrap() }; assert_eq!([1, 2, 3], v); assert_eq!([1, 2, 3], *k.read());
pub unsafe fn with<F>(f: F) -> Option<SecKey<T>> where
F: FnOnce(*mut T),
[src]
F: FnOnce(*mut T),
use seckey::SecKey; let k: SecKey<u32> = unsafe { SecKey::with(|ptr| *ptr = 1).unwrap() }; assert_eq!(1, *k.read());
impl<T: Copy> SecKey<T>
[src]
impl<T: Default> SecKey<T>
[src]
pub fn with_default<F>(f: F) -> Option<SecKey<T>> where
F: FnOnce(&mut T),
[src]
F: FnOnce(&mut T),
use seckey::SecKey; let k: SecKey<u32> = SecKey::with_default(|ptr| *ptr += 1).unwrap(); assert_eq!(1, *k.read());
impl<T> SecKey<T>
[src]
pub fn read(&self) -> SecReadGuard<T>
[src]
Borrow Read
use seckey::SecKey; let secpass = SecKey::new([8u8; 8]).unwrap(); assert_eq!([8u8; 8], *secpass.read());
pub fn write(&mut self) -> SecWriteGuard<T>
[src]
Borrow Write
let mut wpass = secpass.write(); wpass[0] = 0; assert_eq!([0, 8, 8, 8, 8, 8, 8, 8], *wpass);
Trait Implementations
impl<T> Debug for SecKey<T>
[src]
fn fmt(&self, f: &mut Formatter) -> Result
[src]
Formats the value using the given formatter. Read more