5 releases
0.1.4 | Mar 22, 2024 |
---|---|
0.1.3 | Mar 23, 2021 |
0.1.2 | Mar 23, 2021 |
0.1.1 | Mar 21, 2021 |
0.1.0 | Mar 19, 2021 |
#636 in Data structures
11KB
133 lines
any-range
AnyRange<T>
enum can hold any Range*<T>
type.
Use Cases
- Store any kind of range in a struct without adding a type parameter
Features
no_std
, depends only oncore
forbid(unsafe_code)
- 100% test coverage
Limitations
- Uses more bytes than a plain
Range<T>
. The alignment ofT
determines how many extra bytes the enum uses.
Alternatives
anyrange
- Should be called
ToRange
- Doesn't support
RangeInclusive
orRangeToInclusive
- Unmaintained
- Should be called
Example
use any_range::AnyRange;
let r = AnyRange::from(3..5);
assert!(r.contains(&3));
assert_eq!("de", &"abcdefg"[r.bounds()]);
Cargo Geiger Safety Report
Metric output format: x/y
x = unsafe code used by the build
y = total unsafe code found in the crate
Symbols:
🔒 = No `unsafe` usage found, declares #![forbid(unsafe_code)]
❓ = No `unsafe` usage found, missing #![forbid(unsafe_code)]
☢️ = `unsafe` usage found
Functions Expressions Impls Traits Methods Dependency
0/0 0/0 0/0 0/0 0/0 🔒 any-range 0.1.4
0/0 0/0 0/0 0/0 0/0
Changelog
- v0.1.4 - Add
bounds
method for slicing - v0.1.3 - Implement
Hash
,PartialOrd
,Ord
- v0.1.2 - Increase test coverage
- v0.1.1 - Update docs
- v0.1.0 - Initial version
License: Apache-2.0