8 个版本
使用旧的 Rust 2015
0.1.7 | 2018 年 1 月 9 日 |
---|---|
0.1.6 | 2018 年 1 月 8 日 |
2540 在 Rust 模式 中
每月下载 29 次
11KB
184 行
num_alias
提供简单且有用的宏,用于声明整数和浮点数的“类型和范围检查”别名。
#[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}
)构建别名,则范围检查将不会运行)。