3 个版本
0.1.2 | 2022年9月6日 |
---|---|
0.1.1 | 2022年9月1日 |
0.1.0 | 2022年9月1日 |
#4 在 #u256
用于 owl-crypto
44KB
1K SLoC
UN-PRIM
为任何 Rust 项目提供不寻常的原语类型。
这个包是不稳定的,可能存在很多错误,我建议不要使用它。
用法
[dependencies]
un-prim = "0.1"
use un_prim::*;
let x: U256 = 100u128.into();
let y: U256 = 2u128.into();
let z = x * y;
assert_eq!(200u64, z.into());
宏
要创建新类型,您可以使用宏 define!
。
use un_prim::*;
define!(U512, 64, "512-bits custom type.");
let x: U512 = 100u8.into();
assert_eq!(x * 2u8.into(), 200u8.into());
待办事项
- 为每种类型添加 Pow/Exp 方法。
- 为每种类型添加 SQRT 方法。
lib.rs
:
unprim 包含从 8 位到 256 位的原语类型。它是不稳定的,不建议用于生产。
use un_prim::*;
let a = U256::from(100);
let b = U256::from(2);
assert_eq!(a * b, 200u64.into());
或者您可以使用 .into()
方法来初始化这些类型。
use un_prim::*;
let a: U24 = 100u64.into();
let b: U24 = 2u64.into();
let c: u32 = (a * b).into();
assert_eq!(c, 200);
您可以使用宏来定义新类型。例如,如果您想定义一个 512 位的类型,您可以使用该宏。
use un_prim::*;
define!(U512, 64, "512 bit");
let a = U512::from(100);
let b = U512::from(2);
let c = a * b;
assert_eq!(c, 200u64.into());
依赖关系
~110–350KB