38 lines
1.1 KiB
Rust
38 lines
1.1 KiB
Rust
// not all are used in all features configurations
|
|
#![allow(unused)]
|
|
|
|
/// Forward a method to an inherent method or a base trait method.
|
|
macro_rules! forward {
|
|
($( Self :: $method:ident ( self $( , $arg:ident : $ty:ty )* ) -> $ret:ty ; )*)
|
|
=> {$(
|
|
#[inline]
|
|
fn $method(self $( , $arg : $ty )* ) -> $ret {
|
|
Self::$method(self $( , $arg )* )
|
|
}
|
|
)*};
|
|
($( $base:ident :: $method:ident ( self $( , $arg:ident : $ty:ty )* ) -> $ret:ty ; )*)
|
|
=> {$(
|
|
#[inline]
|
|
fn $method(self $( , $arg : $ty )* ) -> $ret {
|
|
<Self as $base>::$method(self $( , $arg )* )
|
|
}
|
|
)*};
|
|
($( $base:ident :: $method:ident ( $( $arg:ident : $ty:ty ),* ) -> $ret:ty ; )*)
|
|
=> {$(
|
|
#[inline]
|
|
fn $method( $( $arg : $ty ),* ) -> $ret {
|
|
<Self as $base>::$method( $( $arg ),* )
|
|
}
|
|
)*}
|
|
}
|
|
|
|
macro_rules! constant {
|
|
($( $method:ident () -> $ret:expr ; )*)
|
|
=> {$(
|
|
#[inline]
|
|
fn $method() -> Self {
|
|
$ret
|
|
}
|
|
)*};
|
|
}
|