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