#range #enums #any #hold #range-t #any-range-t

any-range

AnyRange 枚举可以持有任何 Range* 类型。

5 个版本

0.1.4 2024年3月22日
0.1.3 2021年3月23日
0.1.2 2021年3月23日
0.1.1 2021年3月21日
0.1.0 2021年3月19日

#581数据结构

Apache-2.0

11KB
133

any-range

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

AnyRange<T> 枚举可以持有任何 Range*<T> 类型。

用例

  • 在不添加类型参数的情况下,将任何类型的范围存储在结构体中

特性

  • no_std,仅依赖于 core
  • 禁止(不安全代码)
  • 100% 测试覆盖率

限制

  • 比纯 Range<T> 使用更多字节。类型 T 的对齐方式决定了枚举额外使用的字节数。

替代方案

  • anyrange
    • 应称为 ToRange
    • 不支持 RangeInclusiveRangeToInclusive
    • 未维护

示例

use any_range::AnyRange;
let r = AnyRange::from(3..5);
assert!(r.contains(&3));
assert_eq!("de", &"abcdefg"[r.bounds()]);

Cargo Geiger 安全报告


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    

变更日志

  • v0.1.4 - 添加 bounds 方法用于切片
  • v0.1.3 - 实现 HashPartialOrdOrd
  • v0.1.2 - 增加测试覆盖率
  • v0.1.1 - 更新文档
  • v0.1.0 - 初始版本

许可证:Apache-2.0

无运行时依赖