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