The first piece of code throws an error, all the others work. Why?
Error!
#[derive(Debug, Default)]
struct StructName<T=u32> { // default generic parameter type
field: T,
}
fn main() {
let a = StructName { ..Default::default() };
// ^^^^^^^^^^ Error: cannot infer type for type parameter `T`
// declared on the struct `StructName`
println!("{:?}", a);
}
Ok!
#[derive(Debug, Default)]
struct StructName<T=u32> {
field: T,
}
fn main() {
let a: StructName = StructName { ..Default::default() };
// ^ ^^^^^^^^^^ Ok!
println!("{:?}", a);
}
Ok!
#[derive(Debug, Default)]
struct StructName<T=u32> {
field: T,
}
fn main() {
let a = StructName {
..Default::default()
} as StructName;
// ^^ ^^^^^^^^^^ Ok!
println!("{:?}", a);
}
Ok!
#[derive(Debug, Default)]
struct StructName<T=u32> {
field: T,
}
type Settings = StructName;
// ^^^^^^^^^^^^^^^^^^^^^ Ok!
fn main() {
let a = Settings { ..Default::default() };
println!("{:?}", a);
}