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