#literals #u256 #proc-macro #ethereum #compile-time

u256-literal

编译时将 u256 文字转换为 U256 的过程宏

8 个版本 (稳定)

1.2.1 2023年1月27日
1.2.0 2022年7月22日
1.1.2 2022年5月26日
1.1.0 2021年10月17日
0.1.0 2021年6月17日

#9 in #u256

Download history 161/week @ 2024-03-14 78/week @ 2024-03-21 104/week @ 2024-03-28 78/week @ 2024-04-04 98/week @ 2024-04-11 85/week @ 2024-04-18 84/week @ 2024-04-25 90/week @ 2024-05-02 101/week @ 2024-05-09 68/week @ 2024-05-16 56/week @ 2024-05-23 83/week @ 2024-05-30 61/week @ 2024-06-06 80/week @ 2024-06-13 299/week @ 2024-06-20 213/week @ 2024-06-27

669 每月下载量
用于 19 个 crate (2 个直接使用)

MIT/Apache

6KB
58

u256-literal

描述

此 crate 可以帮助您以简单的方式声明一个常量 U256。无需用双引号包裹整数文字。

用法

use primitive_types::U256;
use u256_literal::u256;

const Q96: U256 = u256!(0x1000000000000000000000000);

// support hex style integer
let x = u256!(0x1234ff);
// support normal style
let y = u256!(987654);
// support float style number
let z = u256!(1.23e18);

许可证

所有 crate 均受以下任一许可证的约束

您自行选择。

贡献

除非您明确声明,否则您有意提交的任何贡献,均应按照 Apache-2.0 许可证进行双授权,不添加任何额外的条款或条件。


lib.rs:

此 crate 提供了 u256! 宏,用于在编译时将 u256 文字转换为实际的 primitive_types::U256。当您尝试定义一个常量 U256 时,这非常有用。

它支持 0x 前缀和常规小数。当数字太大而无法适应 U256 时,它会报错。

此 crate 假设您已将 primitive-types 添加到您的 Cargo.toml 依赖中。

示例

let x = u256!(123454444444444444444444444444444444444444444);
let y = u256!(0x123456789827823721235568483);
let z = u256!(1e18);
let w = u256!(1.23e18);

依赖关系

~1.5MB
~40K SLoC