Open zutils opened 5 years ago
I came to make the same suggestion.
However, I also prefer precision and explicitness, so I wouldn't recommend always supporting Into
on every new
param. Here are some brainstorms about design:
style
configurationThe default style equivalent to the current direct/concrete argument types, then a style called "Into"
is introduced:
#[derive(new)]
#[new(style="Into")]
struct Account {
name: String,
info: Box<Address>,
}
let acct = Account::new("alice", Address::new(…));
#[derive(new)]
struct Account {
#[new(style="Into")]
name: String,
info: Box<Address>,
}
let acct = Account::new("alice", Address::new(…)); // Error: expected `Box<Address>` found `Address`
My preference is to support both struct-scoped and per-field configurations. Struct-scoped reduces boilerplate, whereas per-field allows fined-grained precision.
I implemented the feature in #65 (first time contributor to this crate). Please let me know what you think.
Many times I have MyStruct::new("something".into()). I would rather not keep typing into(). Perhaps there is a way that new can take an Into.