Struct SectionWriter
pub struct SectionWriter { /* private fields */ }Expand description
One shard’s side of a shared log: assigns the shard’s LSNs and encodes its records, once, into the section its next batch carries. Pure.
Implementations§
§impl SectionWriter
impl SectionWriter
pub fn next_lsn(&self) -> Lsn
pub fn last_lsn(&self) -> Lsn
pub fn has_pending(&self) -> bool
pub fn append<S: AsRef<str>, B: AsRef<[u8]>>(
&mut self,
rec: &Record<S, B>,
) -> Result<Lsn, TooLarge>
pub fn append<S: AsRef<str>, B: AsRef<[u8]>>( &mut self, rec: &Record<S, B>, ) -> Result<Lsn, TooLarge>
Appends one record and returns its LSN.
pub fn last_encoded(&self) -> &[u8] ⓘ
pub fn last_encoded(&self) -> &[u8] ⓘ
The canonical encoding of the record most recently appended (empty once its section was taken).
pub fn discard(&mut self) -> Option<(u32, u64, Lsn)>
pub fn discard(&mut self) -> Option<(u32, u64, Lsn)>
Forgets the records appended since the last call, keeping the
buffer, for storage that holds nothing (memory mode): their count,
bytes and last LSN.
pub fn take_up_to(&mut self, max: usize) -> Option<Batch>
pub fn take_up_to(&mut self, max: usize) -> Option<Batch>
Takes the oldest records not taken yet as one section of at most
max bytes (one record at least); the rest stay for the next call.
When everything fits, which is every call of a shard that keeps up,
the section is the writer’s buffer itself: nothing is copied.
Trait Implementations§
§impl Clone for SectionWriter
impl Clone for SectionWriter
§fn clone(&self) -> SectionWriter
fn clone(&self) -> SectionWriter
Returns a duplicate 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 moreAuto Trait Implementations§
impl Freeze for SectionWriter
impl RefUnwindSafe for SectionWriter
impl Send for SectionWriter
impl Sync for SectionWriter
impl Unpin for SectionWriter
impl UnsafeUnpin for SectionWriter
impl UnwindSafe for SectionWriter
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