Expand description
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"]);
§Choices of backing storage
Backed by an array:
let mut dmesg = log_buffer::LogBuffer::new([0; 16]);
Backed by a mutable slice:
let mut storage = [0; 16];
let mut dmesg = log_buffer::LogBuffer::new(&mut storage);
Backed by a vector:
let mut dmesg = log_buffer::LogBuffer::new(vec![0; 16]);
Structs§
- LogBuffer
- A ring buffer that stores UTF-8 text.