Skip to main content

LogRing

Struct LogRing 

Source
pub struct LogRing { /* private fields */ }
Expand description

The last lines of a log, oldest first, and how many older ones were dropped. Each line pushed gets a sequence number, from 0 and never reused, so a reader takes the lines since the last it took.

Implementations§

Source§

impl LogRing

Source

pub fn new(capacity: usize) -> Self

An empty ring that keeps capacity lines.

Source

pub fn push(&mut self, line: LogLine)

Keeps line, dropping (and counting) the oldest when full.

Source

pub fn lines(&self) -> Iter<'_, LogLine> ⓘ

The kept lines, oldest first.

Source

pub fn dropped(&self) -> u32

How many lines were dropped to keep the newest.

Source

pub fn add_dropped(&mut self, n: u32)

Counts n more lines dropped (elsewhere, before they got here).

Source

pub fn next_seq(&self) -> u64

The sequence number the next line pushed gets.

Source

pub fn since(&self, seq: u64) -> Iter<'_, LogLine> ⓘ

The kept lines whose sequence number is seq or more, oldest first: those after the last a reader took, if it kept next_seq then.

Source

pub fn take(&mut self) -> (Vec<LogLine>, u32)

Takes every kept line and the dropped count, leaving the ring empty with none dropped. Sequence numbers go on from where they were.

Trait Implementations§

Source§

impl Clone for LogRing

Source§

fn clone(&self) -> LogRing

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for LogRing

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for LogRing

Source§

impl PartialEq for LogRing

Source§

fn eq(&self, other: &LogRing) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for LogRing

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.