Struct sodoken::BufWriteSized
source · pub struct BufWriteSized<const N: usize>(pub Arc<dyn AsBufWriteSized<N>>);
Expand description
A concrete sized writable buffer type that may or may not be mem_locked.
Tuple Fields§
§0: Arc<dyn AsBufWriteSized<N>>
Implementations§
source§impl<const N: usize> BufWriteSized<N>
impl<const N: usize> BufWriteSized<N>
sourcepub fn new_no_lock() -> Self
pub fn new_no_lock() -> Self
Consruct a new BufWrite that is NOT mem_locked.
sourcepub fn new_mem_locked() -> SodokenResult<Self>
pub fn new_mem_locked() -> SodokenResult<Self>
Construct a new BufWrite that IS mem_locked. Use this for passwords / private keys, etc, but NOT everything, locked memory is a finite resource.
sourcepub fn deep_clone_no_lock<O>(o: O) -> Selfwhere
O: Into<BufReadSized<N>> + 'static + Send,
pub fn deep_clone_no_lock<O>(o: O) -> Selfwhere
O: Into<BufReadSized<N>> + 'static + Send,
Deep clone the data referred to by another buffer object, into a new non-memory-locked BufWrite instance.
sourcepub fn deep_clone_mem_locked<O>(o: O) -> SodokenResult<Self>where
O: Into<BufReadSized<N>> + 'static + Send,
pub fn deep_clone_mem_locked<O>(o: O) -> SodokenResult<Self>where
O: Into<BufReadSized<N>> + 'static + Send,
Deep clone the data referred to by another buffer object, into a new MEMORY LOCKED BufWrite instance.
sourcepub fn read_lock_sized(&self) -> ReadGuardSized<'_, N>
pub fn read_lock_sized(&self) -> ReadGuardSized<'_, N>
Obtain read access to the underlying buffer.
sourcepub fn to_read_unsized(&self) -> BufRead
pub fn to_read_unsized(&self) -> BufRead
Convert to an unsized BufRead instance without cloning internal data and without changing memory locking strategy.
sourcepub fn write_lock(&self) -> WriteGuard<'_>
pub fn write_lock(&self) -> WriteGuard<'_>
Obtain write access to the underlying buffer.
sourcepub fn to_read(&self) -> BufRead
pub fn to_read(&self) -> BufRead
Downgrade this to a read-only reference without cloning internal data and without changing memory locking strategy.
sourcepub fn write_lock_sized(&self) -> WriteGuardSized<'_, N>
pub fn write_lock_sized(&self) -> WriteGuardSized<'_, N>
Obtain write access to the underlying buffer.
sourcepub fn to_read_sized(&self) -> BufReadSized<N>
pub fn to_read_sized(&self) -> BufReadSized<N>
Downgrade this to a read-only reference without cloning internal data and without changing memory locking strategy.
sourcepub fn to_write_unsized(&self) -> BufWrite
pub fn to_write_unsized(&self) -> BufWrite
Convert to an unsized BufWrite instance without cloning internal data and without changing memory locking strategy.
sourcepub fn try_unwrap(self) -> Result<Box<[u8]>, BufRead>
pub fn try_unwrap(self) -> Result<Box<[u8]>, BufRead>
Attempt to extract the inner contents of this buf without cloning. If this memory is locked or there are clones of this reference, the unwrap will fail, returning a BufRead instance.
sourcepub fn try_unwrap_sized(self) -> Result<[u8; N], BufReadSized<N>>
pub fn try_unwrap_sized(self) -> Result<[u8; N], BufReadSized<N>>
Attempt to extract the inner contents of this buf without cloning. If this memory is locked or there are clones of this reference, the unwrap will fail, returning a BufRead instance.
Trait Implementations§
source§impl<const N: usize> Clone for BufWriteSized<N>
impl<const N: usize> Clone for BufWriteSized<N>
source§fn clone(&self) -> BufWriteSized<N>
fn clone(&self) -> BufWriteSized<N>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more