| Crates.io | fixed-slice-deque |
| lib.rs | fixed-slice-deque |
| version | 0.1.0-beta5 |
| created_at | 2022-09-13 14:44:40.474864+00 |
| updated_at | 2026-01-22 09:51:23.386352+00 |
| description | A fixed size deque implementation |
| homepage | https://github.com/danielsanchezq/fixed-slice-deque |
| repository | https://github.com/danielsanchezq/fixed-slice-deque |
| max_upload_size | |
| id | 664628 |
| size | 80,334 |
[dependencies]
fixed-slice-deque = "0.1.0-beta5"
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.
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 VecDeque
This is heavely inspired by SliceDeque and almos every orignal SliceDeque method is implemented.
This project is licensed under either of
at your option.
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.