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][doc] for details. [doc]: https://whitequark.github.io/rust-log_buffer/log_buffer/ Installation ------------ To use the _log_buffer_ library in your project, add the following to `Cargo.toml`: ```toml [dependencies] log_buffer = "1.0" ``` Usage example ------------- ```rust 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!["second", "third"]); ``` See the [documentation][doc] 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](LICENSE-APACHE) and [LICENSE-MIT](LICENSE-MIT) for details.