Macro duck_impl
Source macro_rules! duck_impl {
{
$(#[$attr:meta])*
$vis:vis fn $method:ident
$(<
$($($a:lifetime),+$(,)?)?
$($TParam:ident),*$(,)?
>)?(
&self$(,$($value:ident: $T:ty),*$(,)?)?
) $(-> $Returns:ty)? $(where $($wherett:tt)*)?;
} => { ... };
{
$(#[$attr:meta])*
$vis:vis unsafe fn $method:ident
$(<
$($($a:lifetime),+$(,)?)?
$($TParam:ident),*$(,)?
>)?(
&self$(,$($value:ident: $T:ty),*$(,)?)?
) $(-> $Returns:ty)? $(where $($wherett:tt)*)?;
} => { ... };
{
$(#[$attr:meta])*
$vis:vis fn $method:ident
$(<
$($($a:lifetime),+$(,)?)?
$($TParam:ident),*$(,)?
>)?(
&mut self as $this:ident
$(,$($value:ident: $T:ty),*$(,)?)?
) $(-> $Returns:ty)? $(where $($wherett:tt)*)?
$body:block
} => { ... };
{
$(#[$attr:meta])*
$vis:vis unsafe fn $method:ident
$(<
$($($a:lifetime),+$(,)?)?
$($TParam:ident),*$(,)?
>)?(
&mut self as $this:ident
$(,$($value:ident: $T:ty),*$(,)?)?
) $(-> $Returns:ty)? $(where $($wherett:tt)*)?
$body:block
} => { ... };
{
$(#[$attr:meta])*
$vis:vis fn $method:ident
$(<
$($($a:lifetime),+$(,)?)?
$($TParam:ident),*$(,)?
>)?(
&mut self$(,$($value:ident: $T:ty),*$(,)?)?
) $(-> $Returns:ty)? $(where $($wherett:tt)*)?;
} => { ... };
{
$(#[$attr:meta])*
$vis:vis unsafe fn $method:ident
$(<
$($($a:lifetime),+$(,)?)?
$($TParam:ident),*$(,)?
>)?(
&mut self$(,$($value:ident: $T:ty),*$(,)?)?
) $(-> $Returns:ty)? $(where $($wherett:tt)*)?;
} => { ... };
{
$(#[$attr:meta])*
$vis:vis fn $method:ident
$(<
$($($a:lifetime),+$(,)?)?
$($TParam:ident),*$(,)?
>)?(
&mut self as $this:ident
$(,$($value:ident: $T:ty),*$(,)?)?
) $(-> $Returns:ty)? $(where $($wherett:tt)*)?
$body:block
} => { ... };
{
$(#[$attr:meta])*
$vis:vis unsafe fn $method:ident
$(<
$($($a:lifetime),+$(,)?)?
$($TParam:ident),*$(,)?
>)?(
&mut self as $this:ident
$(,$($value:ident: $T:ty),*$(,)?)?
) $(-> $Returns:ty)? $(where $($wherett:tt)*)?
$body:block
} => { ... };
}