在 Rust 中实现范围整数的惯用方法是什么?

sit*_*ith 6 ada rust

在 Ada 编程语言中,可以使用范围约束来声明有符号整数的值必须在最小值和最大值之内。如果没有,则触发异常,例如

在 Rust 中实现这一目标的惯用方法是什么?

use*_*327 3

目前,Rust 中尚未实现编译时范围类型。在internals.rust-lang.org上有一个讨论和几个开放的 GitHub 问题:整数的范围类型(​​或细化类型?)#671数值约束类型#1621。有一个实验包 ranged_integers,它是范围整数的原型。

对于运行时实现,您可以定义您的类型,例如,

struct RangedInt<const MIN: int, const MAX: int>(int);
Run Code Online (Sandbox Code Playgroud)

并在操作员的实现中添加检查。