#[macro_export]
macro_rules! impl_request_has_field {
(
$trait:ident,
$method:ident,
&$ret:ty, $type:ty,
$field:ident,
$wrapper:ident,
$wrapper_field:ident,
) => {
impl $trait for $type {
fn $method(&self) -> &$ret {
&self.$field
}
}
impl<T> $trait for $wrapper<T> {
fn $method(&self) -> &$ret {
self.$wrapper_field.$method()
}
}
};
(
$trait:ident,
$method:ident,
$ret:ty,
$type:ty,
$field:ident,
$wrapper:ident,
$wrapper_field:ident,
) => {
impl $trait for $type {
fn $method(&self) -> $ret {
self.$field.clone()
}
}
impl<T> $trait for $wrapper<T> {
fn $method(&self) -> $ret {
self.$wrapper_field.$method()
}
}
};
}