Crate any_range[][src]

crates.io version license: Apache 2.0 unsafe forbidden pipeline status

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 on core
  • forbid(unsafe_code)
  • 100% test coverage

Limitations

  • Uses more bytes than a plain Range<T>. The alignment of T determines how many extra bytes the enum uses.

Alternatives

  • anyrange
    • Should be called ToRange
    • Doesn’t support RangeInclusive or RangeToInclusive
    • Unmaintained

Example

use any_range::AnyRange;
let range: AnyRange<u8> = (3..5).into();
assert!(range.contains(&3));

Cargo Geiger Safety Report

Changelog

  • v0.1.3 - Implement Hash, PartialOrd, Ord
  • v0.1.2 - Increase test coverage
  • v0.1.1 - Update docs
  • v0.1.0 - Initial version

Happy Contributors 🙂

Fixing bugs and adding features is easy and fast. Send us a pull request and we intend to:

  • Always respond within 24 hours
  • Provide clear & concrete feedback
  • Immediately make a new release for your accepted change

Enums

AnyRange

An enum that can hold any Range* type.