limited-queue-0.1.0 has been yanked.
Limited Queue
Circular queue that overrides the oldest data if trying to push data when queue is full.
All operations are of O(1) complexity, except the constructor with O(Vec::with_capacity).
The generic type T needs to have Default trait for pop operation, since we need to replace the popped element with some element.
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) | circular queue (based on len and capacity provided by Vec) |
| Element trait bound | Default |
- |
push, size-related methods |
✅ | ✅ |
peek, pop support |
✅ | ❌ |
| Indexing | ✅- front: 0- rear: capacity- optionally mutable |
❌ |
| 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.