diff options
author | HampusM <hampus@hampusmat.com> | 2023-02-23 22:35:06 +0100 |
---|---|---|
committer | HampusM <hampus@hampusmat.com> | 2023-02-23 22:41:28 +0100 |
commit | 11c39d50411a747eedac4c6a16fedf598ae798f5 (patch) | |
tree | 498b9b6752964fcb2a15eb0474e25623e79a27f6 /src/util.rs | |
parent | 136f04b2776d5097328345b1a53f50403859b9f0 (diff) |
feat: add project & getting function entries
Diffstat (limited to 'src/util.rs')
-rw-r--r-- | src/util.rs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/util.rs b/src/util.rs new file mode 100644 index 0000000..309a471 --- /dev/null +++ b/src/util.rs @@ -0,0 +1,34 @@ +macro_rules! enum_with_get_inner { + ( + inner = $inner: ty; + $(#[$attr: meta])* + $visibility: vis enum $enum_name: ident { + $( + $(#[$variant_attr: meta])* + $variant: ident($variant_inner: ty), + )* + } + ) => { + $(#[$attr])* + $visibility enum $enum_name { + $( + $(#[$variant_attr])* + $variant($inner) + ),* + } + + impl $enum_name { + /// Returns the inner value. + #[must_use] + pub fn inner(&self) -> &$inner { + match self { + $( + $enum_name::$variant(inner) => inner + ),* + } + } + } + }; +} + +pub(crate) use enum_with_get_inner; |