Struct ic_stable_structures::writer::Writer
source · pub struct Writer<'a, M> { /* private fields */ }
Expand description
A writer that writes sequentially to memory.
Warning: This will overwrite any existing data in stable memory as it writes, so ensure you set
the offset
value accordingly if you wish to preserve existing data.
The writer Will attempt to grow the memory as it writes.
Implementations
sourceimpl<'a, M: Memory> Writer<'a, M>
impl<'a, M: Memory> Writer<'a, M>
sourcepub fn new(memory: &'a mut M, offset: u64) -> Self
pub fn new(memory: &'a mut M, offset: u64) -> Self
Creates a new Writer
which writes to the selected memory starting from the offset.
sourcepub fn write(&mut self, buf: &[u8]) -> Result<(), GrowFailed>
pub fn write(&mut self, buf: &[u8]) -> Result<(), GrowFailed>
Writes a byte slice to the underlying memory directly.
Note: The writer will first attempt to grow the memory enough to write all the data and only then start writing. If the memory can not be grown sufficiently, the write is aborted without writing any data.
Trait Implementations
sourceimpl<'a, M: Memory> Write for Writer<'a, M>
impl<'a, M: Memory> Write for Writer<'a, M>
sourcefn write(&mut self, buf: &[u8]) -> Result<usize, Error>
fn write(&mut self, buf: &[u8]) -> Result<usize, Error>
Write a buffer into this writer, returning how many bytes were written. Read more
sourcefn flush(&mut self) -> Result<(), Error>
fn flush(&mut self) -> Result<(), Error>
Flush this output stream, ensuring that all intermediately buffered
contents reach their destination. Read more
sourcefn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (
can_vector
)1.0.0 · sourcefn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read more
sourcefn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (
write_all_vectored
)Attempts to write multiple buffers into this writer. Read more
Auto Trait Implementations
impl<'a, M> RefUnwindSafe for Writer<'a, M>where
M: RefUnwindSafe,
impl<'a, M> Send for Writer<'a, M>where
M: Send,
impl<'a, M> Sync for Writer<'a, M>where
M: Sync,
impl<'a, M> Unpin for Writer<'a, M>
impl<'a, M> !UnwindSafe for Writer<'a, M>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more