num_traits/
macros.rs

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}