Rotating Buffer

… is a small helper data structure that allows a stack-allocated buffer to be reused while keeping data that couldn't be handled immediately.

Example:

```rust use rotating_buffer::*; let mut buf = RotatingBuffer::::new();

buf.getappendonly().copyfromslice(&[1, 2, 3, 4]); buf.addlen(4); asserteq!(&[1, 2, 3, 4], buf.as_slice());

buf.rotaterightandresizeat(3); asserteq!(&[4], buf.asslice());

asserteq!(3, buf.getappendonly().len()); buf.getappendonly().copyfromslice(&[5, 6, 7]); buf.addlen(3); asserteq!(&[4, 5, 6, 7], buf.asslice());

buf.rotaterightandresizeat(4); asserteq!(buf.asslice().len(), 0); ```

Inspired by a pairing session at Recurse Center 👩‍💻🐙