3 releases (breaking)
0.5.0 | Dec 24, 2024 |
---|---|
0.4.0 | Dec 24, 2024 |
0.3.0 | Dec 24, 2024 |
#668 in Encoding
324 downloads per month
17KB
355 lines
sequential
is a tiny library that provides with Sequence
a sequential number generator that
- produces monotonously increasing integer numbers, starting from a configurable starting point and with a configurable increment
- can be fast-forwarded to skip numbers, but cannot be wound back
- stops producing values when the limit of the chosen type T is reached
- optionally (with feature serde) implements serde's
Serialize
andDeserialize
so that its state can be persisted - works with all unsigned integers, from
u8
tou128
, and withusize
. - strictly uses
checked_*
arithmetics to avoid panic caused by number overflow.
Usage
Add sequential
to the dependencies section in your project's Cargo.toml
[dependencies]
sequential = "0.5"
Example
let mut sequence = Sequence::<usize>::new();
assert_eq!(sequence.next(), Some(0_u8));
assert_eq!(sequence.next(), Some(1_u8));
Features
serde
(optional)
Adds the serialization and deserialization capability.
Dependencies
The library has no external dependency except the optional one to serde
.
Dependencies
~150KB