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. |
5 | macro_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 | |
36 | macro_rules! constant { |
37 | ($( $method:ident () -> $ret:expr ; )*) |
38 | => {$( |
39 | #[inline] |
40 | fn $method() -> Self { |
41 | $ret |
42 | } |
43 | )*}; |
44 | } |
45 | |