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
//! # 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;