$ enum-as-inner
v0.7.0MAJOR UPDATEA proc-macro for deriving inner field accessor functions on enums.
Latest Update Summary
Crate
Name: enum-as-inner New version: 0.7.0 Release date: 2026-02-02T05:05:11.471053Z
Crate readme
Short description A deriving proc-macro for generating functions to automatically give access to the inner members of enum.
Long description The crate provides a proc-macro that allows users to derive access functions for the inner fields of enums. It supports single item enums, multiple unnamed fields, and named fields, with corresponding accessor methods, including unsafe variants for unchecked access.
Features • Derives access functions for inner members of enums • Supports both unnamed and named fields • Provides unsafe methods for direct access
Code Examples Basic unnamed field case
use enum_as_inner::EnumAsInner;
#[derive(Debug, EnumAsInner)]
enum OneEnum {
One(u32),
}
let one = OneEnum::One(1);
assert_eq!(*one.as_one().unwrap(), 1);
assert_eq!(one.into_one().unwrap(), 1);
Multiple, unnamed field case
use enum_as_inner::EnumAsInner;
#[derive(Debug, EnumAsInner)]
enum ManyVariants {
One(u32),
Two(u32, i32),
Three(bool, u32, i64),
}
let mut many = ManyVariants::Three(true, 1, 2);
assert_eq!(many.as_three().unwrap(), (&true, &1_u32, &2_i64));
Multiple, named field case
use enum_as_inner::EnumAsInner;
#[derive(Debug, EnumAsInner)]
enum ManyVariants {
One{ one: u32 },
Two{ one: u32, two: i32 },
Three{ one: bool, two: u32, three: i64 },
}
let mut many = ManyVariants::Three{ one: true, two: 1, three: 2 };
assert_eq!(many.as_three().unwrap(), (&true, &1_u32, &2_i64));
Links
Release info
Release version: N/A
Release description N/A
Code Examples N/A
Minor update: 0.6.1 → 0.7.0
$ DOWNLOADS TREND
$ VERSION HISTORY
$ LINKS
$ INSTALL
cargo add enum-as-innerOr add to Cargo.toml: enum-as-inner = "0.7.0"