1// not all are used in all features configurations
2#![allow(unused)]
3
4/// Forward a method to an inherent method or a base trait method.
5macro_rules! forward {
6 ($( Self :: $method:ident ( self $( , $arg:ident : $ty:ty )* ) -> $ret:ty ; )*)
7 => {$(
8 #[inline]
9 fn $method(self $( , $arg : $ty )* ) -> $ret {
10 Self::$method(self $( , $arg )* )
11 }
12 )*};
13 ($( $base:ident :: $method:ident ( self $( , $arg:ident : $ty:ty )* ) -> $ret:ty ; )*)
14 => {$(
15 #[inline]
16 fn $method(self $( , $arg : $ty )* ) -> $ret {
17 <Self as $base>::$method(self $( , $arg )* )
18 }
19 )*};
20 ($( $base:ident :: $method:ident ( $( $arg:ident : $ty:ty ),* ) -> $ret:ty ; )*)
21 => {$(
22 #[inline]
23 fn $method( $( $arg : $ty ),* ) -> $ret {
24 <Self as $base>::$method( $( $arg ),* )
25 }
26 )*};
27 ($( $imp:path as $method:ident ( self $( , $arg:ident : $ty:ty )* ) -> $ret:ty ; )*)
28 => {$(
29 #[inline]
30 fn $method(self $( , $arg : $ty )* ) -> $ret {
31 $imp(self $( , $arg )* )
32 }
33 )*};
34}
35
36macro_rules! constant {
37 ($( $method:ident () -> $ret:expr ; )*)
38 => {$(
39 #[inline]
40 fn $method() -> Self {
41 $ret
42 }
43 )*};
44}
45