#prime #integer #math #typenum #primality #compile-time #traits

无std typenum-prime

从typenum crate中对类型级别整数进行编译时素性测试

2个不稳定版本

使用旧的Rust 2015

0.2.0 2018年8月31日
0.1.0 2018年1月20日

#267 in 无标准库

MIT/Apache

79KB
1.5K SLoC

typenum-prime

这是一个Rust crate,它为从typenum crate提供的类型级别整数进行编译时素性测试提供了一个标记特质。该测试适用于所有无符号整数。

用法

该crate以typenum-prime的名称发布在https://crates.io/上。按照常规方式将其添加到您的Cargo.toml文件中。

[dependencies]
typenum-prime = "0.2"

许可

根据您选择的以下任一许可发布:

贡献

除非您明确表示,否则根据Apache-2.0许可定义的,您有意提交的任何贡献,均应按上述方式双重许可,不得附加任何额外条款或条件。

我更希望您在第一次pull请求的提交信息中包含这样的语言。


lib.rs:

typenum整数的编译时素性测试。

当前算法是对从2next_integer_power_of_two(sqrt(n))的每个素数进行试除法。默认编译器递归限制有时可能不足以应对正在测试的整数的规模。在必要时,使用crate属性将其提升。

#![recursion_limit="128"]

示例

该crate的预期用途是将类型级别整数参数的范围限制在编译器强制执行其素性测试。例如,您可能希望静态大小的哈希表中的桶的数量始终是素数,以减少哈希冲突。现在您可以让编译器强制执行此约束。

pub struct StaticHashTable<K,V,N>
    where N: Prime + ArrayLength<Option<(K,V)>> {
    buckets: GenericArray<Option<(K,V)>,N>
}

依赖项

~155KB