#alias #macro #convinience

num_alias

简单的宏,用于声明整数和浮点数的“类型检查”别名

8 个版本

使用旧的 Rust 2015

0.1.7 2018 年 1 月 9 日
0.1.6 2018 年 1 月 8 日

2540Rust 模式

每月下载 29

MIT 许可证

11KB
184

num_alias

文档 构建状态 许可证:MIT 提供简单且有用的宏,用于声明整数和浮点数的“类型和范围检查”别名。

#[macro_use]
extern crate num_alias;
fn main() {
    // declare alias with range[3, 6)
    int_alias!(Val, i32, 3 => 6);
    let a = Val(5);
    let b = Val(4);
    // this code panics
    let c = a * b;
}

lib.rs:

简单的宏,用于声明整数和浮点数的“类型和范围检查”别名。

示例

基本用法:仅为浮点数创建别名。

#[macro_use]
extern crate num_alias;
fn main() {
    float_alias!(Fval, f64);
    let a = Fval(5.0);
    let b = Fval(4.0);
    let c = (a * b).sqrt();
}

此外,您还可以使用“范围检查”构造函数声明别名。

#[macro_use]
extern crate num_alias;
fn main() {
    // declare alias with range[3, 6)
    int_alias!(Val, i32, 3 => 6);
    let a = Val(5);
    let b = Val(4);
    // this code panics
    let c = a * b;
}

注意:当与范围一起使用时,这些宏将别名声明为 不是 Tuple Struct,而是 Normal Struct,并使用它们的名称声明全局函数(在上面的示例中,fn Val(i: i32)-> Val 已声明)。

此规范是为了使用方便,但会使别名的范围安全性不完整(如果您可以使用默认构造函数(如 Val{inner: 5})构建别名,则范围检查将不会运行)。

无运行时依赖