translate_data

Macro translate_data 

Source
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