limited-queue

Crates.iolimited-queue
lib.rslimited-queue
version0.1.5
sourcesrc
created_at2024-07-08 14:17:06.354883
updated_at2024-07-12 19:08:01.716794
descriptiona limited queue that overrides the oldest data if trying to push a data when the queue is full.
homepage
repository
max_upload_size
id1296005
size15,975
Tzu-Ching Yang (Shiritai)

documentation

README

Limited Queue

Crates.io Version GitHub top language GitHub CI Status Crates.io Downloads License

A circular queue that overrides the oldest data if trying to push a data when the queue is full.

All operations are of O(1) complexity, except the constructor with O(Vec::with_capacity).

The optional method pop is provided when T satisfies trait bound Default.

Comparison

There is a similar library circular-queue I found, but without the basic peek and pop operations. The comparison for now is listed below:

LimitedQueue circular-queue
Algorithm circular queue (front-rear, without additional element slot) circular queue (based on len and capacity provided by Vec)
Element trait bound needed No, optionally Default for pop method -
push, size-related methods
peek, pop support ✅: peek
✅: pop for T: Default
Indexing
- [0, len)
- support [idx]
- support get(idx)
- optionally mutable ([idx])
Iterator
- front to rear

- both ways
- optionally mutable
clear complexity O(1) O(Vec::clear)
serde support ❌ (TODO)

We welcome any kinds of contributions, please don't be hesitate to submit issues & PRs.

Setup

Please run scripts/setup.sh to setup for committing. Currently, the script registers a git pre-commit hook.

Commit count: 0

cargo fmt