| Crates.io | generic-new |
| lib.rs | generic-new |
| version | 0.2.0 |
| created_at | 2022-03-31 22:50:12.302803+00 |
| updated_at | 2022-04-07 19:22:11.766975+00 |
| description | A derive macro which generates an ergonomic constructor with shortcuts for certain types. |
| homepage | |
| repository | https://github.com/aatifsyed/generic-new |
| max_upload_size | |
| id | 559945 |
| size | 25,623 |
A derive macro which generates an ergonomic constructor with shortcuts for certain types.
use generic_new::GenericNew;
#[derive(GenericNew)]
struct Foo {
s: String, // -> impl AsRef<str>
v: Vec<usize>, // -> impl IntoIterator<Item = usize>
i: Vec<String>, // -> impl IntoIterator<Item = impl AsRef<str>>
p: PathBuf, // -> impl AsRef<Path>
#[generic_new(ignore)]
o: String, // Turn off magic conversion for some fields
#[generic_new(ty = impl Into<usize>, converter = |u|Into::into(u))]
u: usize, // Custom converters are supported
}
Foo::new(
"hello",
[1, 2, 3],
["a", "b", "c"],
"path/to/foo",
String::from("world"),
1u16,
);
License: MIT