Crate default_constructor
source ·Expand description
§default-constructor
Macros for creating pseudo-dsls that constructs structs through default construction and field conversion.
§Motivation
This crates is primary designed for bevy
where constructing large bundles
with ..Default::default()
is common.
§Syntax
Take construct!
that uses Into
.
construct! {
Student {
name: "Timmy",
age: 10,
}
}
This converts to
Student {
name: Into::into("Timmy"),
age: Into::into(10.into()),
..Default::default()
}
§Meta Constructor
The meta constructor macro allows you to define your own macro with custom configurations.
See documentation on meta_default_constructor!
for details.
§InferInto
InferInto allows the user to bypass the orphan rule to create conversions.
By default we provide i32
(integer literal) to all numeric types
and i64
-> f64
in addition to the standard From
and Into
.
If multiple conversion paths are found, the conversion will fail,
thus failing the infer_construct
macro.
§Missing Features
- Allow paths as type name.
- Tuple structs support.
§Possible Features
- Generics parsing.
§License
License under either of
Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
§Contribution
Contributions are welcome!
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Macros§
Traits§
Into
with relaxed orphan rule, you can define non-owned conversion with a ownedMarker
. Keep in mind this inference will fail if multiple conversion paths are found.- Provides conversion from integer literal
i32
to other numerical types.
Functions§
- Convert via
InferInto