const-enum

Crates.ioconst-enum
lib.rsconst-enum
version0.1.0
sourcesrc
created_at2021-12-28 19:49:24.123621
updated_at2021-12-28 19:49:24.123621
descriptionProcedural derive macro for constant From trait implementations on enums based on repr type.
homepage
repositoryhttps://github.com/ppmathis/const-bitfield
max_upload_size
id504400
size27,108
Pascal Mathis (ppmathis)

documentation

README

const-enum

GitHub Crates.io docs.rs GitHub Actions Status

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));
}

License

Licensed under either of

at your option.

Contribution

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.

Commit count: 21

cargo fmt