Struct log_buffer::LogBuffer
[−]
[src]
pub struct LogBuffer<T: AsMut<[u8]>> { /* fields omitted */ }
A ring buffer that stores UTF-8 text.
Anything that implements AsMut<[u8]>
can be used for backing storage;
e.g. [u8; N]
, Vec<[u8]>
, Box<[u8]>
.
Methods
impl<T: AsMut<[u8]>> LogBuffer<T>
[src]
fn new(storage: T) -> LogBuffer<T>
Creates a new ring buffer, backed by storage
.
The buffer is cleared after creation.
const fn uninitialized(storage: T) -> LogBuffer<T>
Creates a new ring buffer, backed by storage
.
The buffer is not cleared after creation, and contains whatever is in storage
.
The clear()
method should be called before use.
However, this function can be used in a static initializer.
fn clear(&mut self)
Clears the buffer.
Only the text written after clearing will be read out by a future extraction.
This function takes O(n) time where n is buffer length.
fn extract(&mut self) -> &str
Extracts the contents of the ring buffer as a string slice, excluding any partially overwritten UTF-8 code unit sequences at the beginning.
Extraction rotates the contents of the ring buffer such that all of its contents becomes contiguous in memory.
This function takes O(n) time where n is buffer length.
fn extract_lines(&mut self) -> Lines
Extracts the contents of the ring buffer as an iterator over its lines, excluding any partially overwritten lines at the beginning.
The first line written to the ring buffer after clearing it should start
with '\n'
, or it will be treated as partially overwritten and lost.
Extraction rotates the contents of the ring buffer such that all of its contents becomes contiguous in memory.
This function takes O(n) time where n is buffer length.
Trait Implementations
impl<T: Debug + AsMut<[u8]>> Debug for LogBuffer<T>
[src]
impl<T: AsMut<[u8]>> Write for LogBuffer<T>
[src]
fn write_str(&mut self, s: &str) -> Result
Append s
to the ring buffer.
This function takes O(n) time where n is length of s
.
fn write_char(&mut self, c: char) -> Result<(), Error>
1.1.0
Writes a char
into this writer, returning whether the write succeeded. Read more
fn write_fmt(&mut self, args: Arguments) -> Result<(), Error>
1.0.0
Glue for usage of the write!
macro with implementors of this trait. Read more