#enums #macro-derive #const #repr #traits #procedural #u8

无std const-enum

基于repr类型在枚举上实现常量From特质的过程宏推导

1 个不稳定版本

0.1.0 2021年12月28日

#31 in #repr


用于 const-bitfield

MIT/Apache

10KB
91

const-enum

GitHub Crates.io docs.rs GitHub Actions Status

此crate提供了一个过程宏ConstEnum,它将为基于它们的repr类型的枚举提供const实现的From特质。

不幸的是,Rust稳定版目前还没有实现此crate所需的所有功能。要使用此库,您必须使用最近的Rust Nightly版本,并在crate根目录中添加以下功能标志:

#![feature(const_trait_impl)]   // always required

以下是此库的简单示例:

#![feature(const_trait_impl)]

use const_enum::ConstEnum;

#[derive(Copy, Clone, Debug, Eq, PartialEq, ConstEnum)]
#[repr(u8)]
enum Test {
    A = 0b010,
    B = 0b100,
    C = 0b001
}

pub fn main() {
    println!("{:?}", Test::from(0b010 as u8));
    println!("{:?}", u8::from(Test::A));
}

许可证

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

供您选择。

贡献

除非您明确声明,否则您提交给包含在作品中的任何贡献,根据Apache-2.0许可证定义,应如上所述双重许可,而不附加任何额外条款或条件。

依赖项

~1.5MB
~35K SLoC