From 11c39d50411a747eedac4c6a16fedf598ae798f5 Mon Sep 17 00:00:00 2001 From: HampusM Date: Thu, 23 Feb 2023 22:35:06 +0100 Subject: feat: add project & getting function entries --- src/util.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/util.rs (limited to 'src/util.rs') 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; -- cgit v1.2.3-18-g5258