26 lines
883 B
Rust
26 lines
883 B
Rust
|
|
||
|
/// 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 ),* )
|
||
|
}
|
||
|
)*}
|
||
|
}
|