1 unstable release
0.1.0 | Aug 24, 2023 |
---|
#237 in #range
5KB
62 lines
Nightly Only
step_trait
is required for marking the generic Item
as iterable.
See the requirement for RangeInclusive::into_iter
.
About
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8
[---------------] - 4 = [-----] [-------]
The main structure this crate provides is PorousRange
, which abstracts over an indefinite amount of ranges (i.e. requires allocation) to simulate one non-contigous one.
PorousRange
accepts any inner generic item
that is num_traits::One
, core::iter::Step
, core::marker::Copy
, core::ops::Add
, and core::ops::Sub
. These requirements are fulfilled by every built-in integer.
An item
is never contained in more than one inner range and can be removed, if it is contained, so that range is removed and up to two new ranges are pushed so that PorousRange
n \ PorousRange
n + 1 = { item
}.
Features
serde
: ImplementSerialize
andDeserialize
onPorousRange
Dependencies
~93–310KB