#generics #const-generics #const #traits #no-std #no-alloc

no-std const_power_of_two

用于处理常数泛型(为二的幂)的 crate

3 个版本 (1 个稳定版)

1.0.0 2024 年 8 月 10 日
0.1.1 2024 年 8 月 10 日
0.1.0 2024 年 8 月 10 日

#1239Rust 模式

Download history 252/week @ 2024-08-05 74/week @ 2024-08-12

每月 326 次下载

MIT/Apache 许可证

17KB
279

const_power_of_two

github crates.io docs.rs build status

用于处理常数泛型(为二的幂)的 crate。

使用方法

将以下内容添加到您的 Cargo.toml

[dependencies]
const_power_of_two = "1"

然后,导入您参数类型的相应 trait,并将其添加到您的 trait 或实现中的 where 约束中

use const_power_of_two::PowerOfTwoUsize;

trait MyTrait<const ALIGNMENT: usize>
where
    usize: PowerOfTwoUsize<ALIGNMENT>,
{
    // ...
}

struct Test;

// NOTE: This is valid, and no error is emitted.
impl MyTrait<4> for Test {}

// NOTE: This will emit an error at compile-time.
impl MyTrait<10> for Test {}

整数类型是实现该 trait 的类型,如上所示。这不是最常用的 Rust 模式,但一旦您看到它的工作方式,它就很容易处理。在编译时,如果 ALIGNMENT 不是一个二的幂,则会发出错误。

文档

您可以在 docs.rs 上查看文档 这里

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确表示,否则任何有意提交以包含在作品中的贡献,如 Apache-2.0 许可证中定义的,都应按上述方式双许可,不附加任何额外条款或条件。

无运行时依赖

~96KB