#ranged #error #run-time #numeric #type #arithmetic #compile-time

nightly ranged_type

一个提供范围数值类型的 crate

1 个不稳定版本

0.1.0 2021年1月31日

#2980 in Rust 模式

MIT/Apache

33KB
712

ranged_type

一个提供(早期阶段)范围数值类型的 crate。

范围类型是利用类型系统提供更具有表达性的类型状态的好方法。一般来说,最好是优先考虑编译时错误而不是运行时错误。

此 crate 中的范围类型设计为两个范围类型的算术运算为零运行时开销(ZRO)操作。

当前限制

  • 早期阶段 PoC 实现
  • 范围限制必须是 const。将来可能允许将此放宽到也允许运行时值(当然,这样的值将不再从 ZRO 算术操作中受益)。
  • 目前依赖于许多不稳定特性来实现类型状态和 ZRO 目标。
  • 在此早期阶段发布为 crate 以(希望)防止意外未来的破坏,例如在 rustc nightly-2020-06-04 上丢失编译时 const 算术。

许可证

许可协议为以下之一

  • MIT 许可证(见 LICENSE-MIT 文件)
  • Apache 许可证第 2 版(见 LICENSE-APACHE 文件),任选其一。

贡献

除非您明确声明,否则您提交给作品的所有贡献都应按上述方式双重许可,而无需任何额外的条款或条件。

依赖项

~0.4–1MB
~21K SLoC