10 个稳定版本
1.0.10 | 2022年3月18日 |
---|---|
1.0.9 | 2021年4月21日 |
1.0.7 | 2020年7月29日 |
1.0.5 | 2019年9月17日 |
1.0.2 | 2018年11月14日 |
#142 在 无标准库
39 每月下载量
用于 sophon
6KB
80 行
Number As
使用 当前作用域中的 NumberAs
特性,让所有基本数字类型都具有 number_as
方法。
use number_as::NumberAs;
let a: i32 = 2u16.number_as();
assert_eq!(2i32, a);
assert_eq!(2i32, 2u16.number_as());
assert_eq!(20i32, 20.6.number_as());
NumberAs
特性的所有实现可以视为一个整体的 基本数字。如果您想设计一个接受所有基本数字的 加 函数,您可以使用 Number
特性作为特质的界限。
use number_as::{Number, NumberAs};
fn add<T, J, K>(a: T, b: J) -> K where T: Number, J: Number, K: Number, i128: NumberAs<K> {
let a: i128 = a.number_as();
let b: i128 = b.number_as();
let c = a + b;
c.number_as()
}
assert_eq!(40i32, add(5u8, 35i16));
Crates.io
https://crates.io/crates/number-as