numeric-enum-macro 0.2.0

A declarative macro for type-safe enum-to-numbers conversion
Documentation
  • Coverage
  • 100%
    2 out of 2 items documented1 out of 1 items with examples
  • Size
  • Source code size: 17.07 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 523.94 kB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • mexus/numeric-enum-macro
    1 1 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • mexus

numeric-enum-macro

A declarative macro for type-safe enum-to-numbers conversion. no-std supported!

use numeric_enum_macro::numeric_enum;

numeric_enum! {
    #[repr(i64)] // repr must go first.
    /// Some docs.
    ///
    /// Multiline docs works too.
    #[derive(Debug, PartialEq, PartialOrd, Ord, Eq, Hash)] // all the attributes are forwarded!
    pub enum Lol {
        // All the constants must have explicit values assigned!
        Kek = 14,
        Wow = 87,
    }
}
// Conversion to raw number:
assert_eq!(14i64, Lol::Kek.into());
// Conversion from raw number:
assert_eq!(Ok(Lol::Wow), Lol::try_from(87));
// Unknown number:
assert_eq!(Err(88), Lol::try_from(88));

License: MIT/Apache-2.0