macro_rules! translate_data {
{} => { ... };
{
$(#[$meta:meta])*
BidiFrom<$type_name1:ty, $type_name2:ty> {
$(
$field1:ident = $field2:ident;
)*
$(..$($d1:expr)?, $($d2:expr)?)?
}
$($token:tt)*
} => { ... };
{
$(#[$meta:meta])*
BidiTryFrom<$type_name1:ty, $type_name2:ty> {
$(
$field1:ident = $field2:ident;
)*
$(..$($d1:expr)?, $($d2:expr)?)?
}
$($token:tt)*
} => { ... };
{
$(#[$meta:meta])*
From<$type_name1:ty> for $type_name2:ty {
$(
$field2:ident = $field1:ident;
)*
$(..$d:expr)?
}
$($token:tt)*
} => { ... };
{
$(#[$meta:meta])*
TryFrom<$type_name1:ty> for $type_name2:ty {
$(
$field2:ident = $field1:ident $( ( $field1_default:expr ))?;
)*
$(..$d:expr)?
}
$($token:tt)*
} => { ... };
}Expand description
Implement From/TryFrom between 2 structs.
This defined 4 constructs:
- From / TryFrom implements the equivalent trait
- BidiFrom / BidiTryFrom implements the trait in both direction