pub struct Segment { /* private fields */ }Expand description
Represents a segment of the log on disk A segment consists of a .log file (data) and a .index file (sparse index)
Implementations§
Source§impl Segment
impl Segment
pub fn new(dir: &Path, base_offset: u64) -> Result<Self>
Sourcepub async fn append(&mut self, offset: u64, message: Message) -> Result<u64>
pub async fn append(&mut self, offset: u64, message: Message) -> Result<u64>
Append a message to the segment
Sourcepub async fn read(&self, offset: u64, max_bytes: usize) -> Result<Vec<Message>>
pub async fn read(&self, offset: u64, max_bytes: usize) -> Result<Vec<Message>>
Read a batch of messages starting from a given offset
pub fn size(&self) -> u64
pub fn base_offset(&self) -> u64
pub async fn recover_last_offset(&self) -> Result<Option<u64>>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Segment
impl !RefUnwindSafe for Segment
impl Send for Segment
impl Sync for Segment
impl Unpin for Segment
impl !UnwindSafe for Segment
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more