1 | #![no_std ] |
2 | #![forbid (unsafe_code)] |
3 | |
4 | #[macro_export ] |
5 | macro_rules! impl_mirrored { |
6 | { |
7 | type Mirror = $tinyname:ident; |
8 | $( |
9 | $(#[$attr:meta])* |
10 | $v:vis fn $fname:ident ($seif:ident : $seifty:ty $(,$argname:ident : $argtype:ty)*) $(-> $ret:ty)? ; |
11 | )* |
12 | } => { |
13 | $( |
14 | $(#[$attr])* |
15 | #[inline(always)] |
16 | $v fn $fname($seif : $seifty, $($argname: $argtype),*) $(-> $ret)? { |
17 | match $seif { |
18 | $tinyname::Inline(i) => i.$fname($($argname),*), |
19 | $tinyname::Heap(h) => h.$fname($($argname),*), |
20 | } |
21 | } |
22 | )* |
23 | }; |
24 | } |
25 | |
26 | |