#编译时 #常量 # #rust

const-random

提供编译时随机数生成

18 个版本

0.1.18 2024 年 3 月 3 日
0.1.17 2023 年 10 月 31 日
0.1.15 2022 年 10 月 25 日
0.1.13 2020 年 12 月 5 日
0.1.3 2019 年 3 月 3 日

#138Rust 模式

Download history 345385/week @ 2024-04-19 326404/week @ 2024-04-26 314651/week @ 2024-05-03 352867/week @ 2024-05-10 357175/week @ 2024-05-17 362295/week @ 2024-05-24 441225/week @ 2024-05-31 449533/week @ 2024-06-07 410799/week @ 2024-06-14 443725/week @ 2024-06-21 436716/week @ 2024-06-28 470060/week @ 2024-07-05 497393/week @ 2024-07-12 512001/week @ 2024-07-19 499166/week @ 2024-07-26 430302/week @ 2024-08-02

2,031,495 每月下载量
用于 1,136 个crate (14 个直接使用)

MIT/Apache 协议

8KB

随机常量

此crate提供编译时随机数生成。这允许您将随机常量插入到代码中,这些常量将在编译时自动生成。

每次文件重建时都会生成新的值。这显然使得生成的二进制文件或库非确定性。(见下文)

示例

use const_random::const_random  ;
const MY_RANDOM_NUMBER: u32 = const_random!(u32);

这正好与在编译时调用: OsRng.gen::<u32>() 相同。所以关于随机数生成的详细信息,请参阅 rand crate 文档。

支持以下类型:u8, i8, u16, i16, u32, i32, u64, i64, u128, i128, usize, isize 和 [u8; N]。

确定性构建

有时对于构建系统来说,确定性是一个优点。为了支持这一点,const-random 读取环境变量 CONST_RANDOM_SEED。如果设置了此变量,它将被用作随机数生成的种子。在相同代码的构建中设置相同的种子应导致相同的输出。

依赖项

~130–305KB