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;