simple_ringbuf 0.1.2

Simple Ringbuf is a speedy lightweight fixed-size infinite-use collection optimized for straightforward single threaded use.
Documentation
 Simple Ringbuf
 ==============
 
 [![Build Status](https://travis-ci.com/Zaerei/simple_ringbuf.svg?branch=master)](https://travis-ci.com/Zaerei/simple_ringbuf) 
 [![Docs](https://docs.rs/simple_ringbuf/badge.svg)](https://docs.rs/simple_ringbuf)
![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)
![License: Apache](https://img.shields.io/badge/License-Apache-green.svg)
[![Crate Version](https://img.shields.io/crates/v/simple_ringbuf.svg)](https://crates.io/crates/simple_ringbuf)

<!-- cargo-sync-readme start -->


The `simple_ringbuf` crate provides a lightweight (no dependency) ring buffer backed with
a hand-memory managed buffer (with `unsafe`). Serialization support is optionally available
with the `serde` feature flag.

The sole feature of this create is the `RingBuffer` struct, which is a fixed-sized collection
with an API somewhat similar to standard Rust collections.

The primary intention of this crate is to provide a cheap *fixed-sized* collection for
buffering a finite horizon of data. The use case this was developed for was an action history
log for a bot, and could be used for similar concepts like undo logs. In fact, the iterator
and Index implementations for this struct assume you want to iterate from the "top" of the deque
(newest to oldest), and doesn't allow mutation of elements at this time (but does allow
push/popping from both ends).

Most existing ring buffers for Rust such as the [`ringbuf`] crate, or the standard library's
own [`VecDeque`] are specialized for different uses and may fit your needs better.

[`ringbuf`]: https://crates.io/crates/ringbuf
[`VecDeque`]: https://doc.rust-lang.org/std/collections/struct.VecDeque.html

<!-- cargo-sync-readme end -->