18个版本
0.9.0-alpha.2 | 2024年7月29日 |
---|---|
0.9.0-alpha.1 | 2024年3月18日 |
0.9.0-alpha.0 | 2024年2月18日 |
0.6.4 | 2022年9月15日 |
0.0.1 |
|
#38 in 算法
12,637,695 每月下载量
在 41,389 个crate中使用 (998直接)
62KB
769 行
rand_core
rand 库的核心特性和错误类型,以及实现RNG的工具。
此crate旨在在实现核心特 性 RngCore
时使用;它定义了要实现的核 心特性以及几个辅助函数和错误处理所需的数据类型。
主要的 rand crate导出了此crate中定义的大多数项,以及将RngCore
生成的整数样本转换为许多不同应用(包括从受限范围内抽取样本、转换为浮点数、列表排列和RNG的安全初始化)的工具。大多数用户应首选使用主要的 rand crate。
链接
功能
rand_core
crate提供
- 基础随机数生成器特性
- 错误报告类型
- 辅助RNG实现的函数
特性和错误类型也通过 rand
提供。
版本
当前版本是
rand_core = "0.6.4"
随机库之间存在相互依赖关系,并使用semver技巧,以确保特质在不同crate版本之间兼容。这对于RngCore
和SeedableRng
尤其重要。因此,一些crate发行版实际上是兼容性补丁,依赖于下一个lib版本(例如rand_core
版本0.2.2
和0.3.1
)。这意味着,例如,rand_core_0_4_0::SeedableRng
和rand_core_0_3_0::SeedableRng
是不同的、不兼容的特性,这可能导致构建错误。通常,运行cargo update
就足以修复任何问题。
crate特性
rand_core
支持no_std
和仅alloc
的配置,以及完整的std
功能。与no_std
和完整std
之间的差异很小,包括对支持RngCore
的Box<R>
类型的R: RngCore
的RngCore
支持、对支持RngCore
的类型进行std::io::Read
的支持以及对Error
类型功能性的扩展。
默认情况下,不启用std
特性。这主要是为了避免在构建过程中出现一个问题,其中一个crate隐式地需要具有std
支持的rand_core
,而另一个crate需要rand
不 具有对std
的支持。然而,rand
crate继续默认为自身和rand_core
启用std
支持。
可以使用serde
特性为使用BlockRng
或BlockRng64
包装器实现的RNG实现派生Serialize
和Deserialize
。
许可证
rand_core
在MIT许可证和Apache许可证(版本2.0)的条款下分发。
请参阅LICENSE-APACHE和LICENSE-MIT,以及COPYRIGHT以获取详细信息。
依赖关系
~0.5–1MB
~13K SLoC