Crate log_buffer [−] [src]
log_buffer
provides a way to record and extract logs without allocation.
The LogBuffer achieves this by providing a ring
buffer, similar to a *nix dmesg facility.
Usage example
use std::fmt::Write; let mut dmesg = log_buffer::LogBuffer::new([0; 16]); write!(dmesg, "\nfirst\n").unwrap(); write!(dmesg, "second\n").unwrap(); write!(dmesg, "third\n").unwrap(); assert_eq!(dmesg.extract(), "st\nsecond\nthird\n"); assert_eq!(dmesg.extract_lines().collect::<Vec<_>>(), vec!["second", "third"]);Run
Choices of backing storage
Backed by an array:
let mut dmesg = log_buffer::LogBuffer::new([0; 16]);Run
Backed by a mutable slice:
let mut storage = [0; 16]; let mut dmesg = log_buffer::LogBuffer::new(&mut storage);Run
Backed by a vector:
let mut dmesg = log_buffer::LogBuffer::new(vec![0; 16]);Run
Structs
LogBuffer |
A ring buffer that stores UTF-8 text. |