Crates.io | const-enum |
lib.rs | const-enum |
version | 0.1.0 |
source | src |
created_at | 2021-12-28 19:49:24.123621 |
updated_at | 2021-12-28 19:49:24.123621 |
description | Procedural derive macro for constant From trait implementations on enums based on repr type. |
homepage | |
repository | https://github.com/ppmathis/const-bitfield |
max_upload_size | |
id | 504400 |
size | 27,108 |
This crate providers a procedural derive macro ConstEnum
, which will provide a const
implementation of the From
trait for converting an enum
based on their repr
type.
Unfortunately Rust Stable does not currently contain all required features for implementing this crate. To use of this library, you must use a recent Rust Nightly release and add the following feature flags to your crate root:
#![feature(const_trait_impl)] // always required
Here is a simple example of how this library can be used:
#![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));
}
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.