fixed-slice-deque

Crates.iofixed-slice-deque
lib.rsfixed-slice-deque
version0.1.0-beta2
sourcesrc
created_at2022-09-13 14:44:40.474864
updated_at2022-10-28 08:56:56.613707
descriptionA fixed size deque implementation
homepagehttps://github.com/danielsanchezq/fixed-slice-deque
repositoryhttps://github.com/danielsanchezq/fixed-slice-deque
max_upload_size
id664628
size76,206
Daniel Sanchez (danielSanchezQ)

documentation

https://docs.rs/crate/fixed-slice-deque/

README

fixed-slice-deque

MIT licensed GHA Build Status Docs Badge Crates.io

Add the library dependency

[dependencies]
fixed-slice-deque = "0.1.0-beta2"

Explanation:

A fixed size double-ended queue that Derefs into a slice. For keeping the fixed queue size items pushed out of bounds are pop and returned in inserting operations.

Example:

Initialize state, empty, with fixed size of 3

`X = None`
+---+---+---+
| X | X | X |
+---+---+---+

Pushing 1 to the back, since it is empty, 1 is the only item in the deque

=> push_back(1)

+---+---+---+
| 1 | X | X |
+---+---+---+

Push 2 to the front (left)

=> push_front(2)

+---+---+---+
| 2 | 1 | X |
+---+---+---+

Push again to the back, a single 3. The deque now is full

=> push_back(3)

+---+---+---+
| 2 | 1 | 3 |
+---+---+---+

We try to add a new item at the back, but we would have one extra, the first item (2) is pop to the left and returned. We keep the elements and the fixed size

=> push_back(4)

+---+---+---+
| 1 | 3 | 4 | => return Some(2)
+---+---+---+

The same happens when pushing to the front again, the back-most (right) item is pop and returned

=> push_front(5)

+---+---+---+
| 5 | 1 | 3 | => return Some(4)
+---+---+---+

It is implemented as a wrapper over SliceDeque slice-deque crate

Almost every orignal SliceDeque method is wrapped. Please refer to it's twin method documentation for internal functionality.

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in SliceDeque by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 21

cargo fmt