log_buffer 1.2.0

A zero-allocation ring buffer for storing text logs
Documentation

log_buffer

log_buffer is a Rust crate implementing a zero-allocation ring buffer for storing text logs. It does not depend on std, but can be used with std::vec::Vec if desired. It does not depend on anything and compiles on Rust 1.26 or newer.

See the documentation for details.

Installation

To use the log_buffer library in your project, add the following to Cargo.toml:

[dependencies]
log_buffer = "1.0"

Usage example

use core::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"]);

See the documentation for more examples.

License

log_buffer is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.