1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//! # StructMapper
//!
//! A library to help you generate code that mapped one struct to another.
//!
//! # Example
//! ```
//!   use structmapper::StructMapper;
//!
//!   struct From1 {
//!     value: i32,
//!   }
//!
//!   struct From2 {
//!     value: i32,
//!   }
//!
//!   struct From3 {
//!     value: i32,
//!   }
//!
//!   #[derive(StructMapper)]
//!   #[struct_mapper(from_type = "From1")]
//!   #[struct_mapper(from_type = "From2")]
//!   #[struct_mapper(
//!     from_type = "(From1, From2, From3)",
//!     default_base = "{0}",
//!     fields(
//!       value = "{0.value} + {1.value} + {2.value}"
//!     )
//!   )]
//!   struct To {
//!     value: i32
//!   }
//!
//!   let to = To::from(From1 { value: 1 });
//!   assert_eq!(to.value, 1);
//!
//!   let to = To::from(From2 { value: 2 });
//!   assert_eq!(to.value, 2);
//!
//!   let to = To::from((From1 { value: 1 }, From2 { value: 2 }, From3 { value: 3 }));
//!   assert_eq!(to.value, 1 + 2 + 3);
//! ```

pub use structmapper_codegen::StructMapper;