1 个不稳定版本
0.1.0 | 2022年9月22日 |
---|
#14 in #primitives
44KB
1K SLoC
原语
Ethereum 的 Rust 原语类型。
这个crate是不稳定的,可能有很多bug,我建议不要使用它。
用法
[dependencies]
laron_primitives = "0.1"
use laron_primitives::*;
let x: U256 = 100u128.into();
let y: U256 = 2u128.into();
let z = x * y;
assert_eq!(200u64, z.into());
宏
要创建新类型,可以使用宏 define!
。
use laron_primitives::*;
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 laron_primitives::*;
let a = U256::from(100);
let b = U256::from(2);
assert_eq!(a * b, 200u64.into());
或者您可以使用 .into()
方法来初始化类型。
use laron_primitives::*;
let a: U24 = 100u64.into();
let b: U24 = 2u64.into();
let c: u32 = (a * b).into();
assert_eq!(c, 200);
您可以使用宏来定义新类型。例如,如果您想定义一个 512 位的类型,可以使用这个宏。
use laron_primitives::*;
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