I am trying to find examples for constructor functions in outline, but didn't have much luck. Is this an idiomatic thing to do in Rust?
trait A { fn new() -> A; } struct B; impl A for B { fn new() -> B { B } } fn main() { println!("message") }
<anon>:7:8: 9:9 error: method `new` has an incompatible type for trait: expected trait A, found struct `B` [E0053] <anon>:7 fn new() -> B { <anon>:8 B <anon>:9 } <anon>:7:8: 9:9 help: see the detailed explanation for E0053 error: aborting due to previous error playpen: application terminated with error code 101
Executing this function returns a core :: marker :: Sized error.
trait A { fn new() -> A; } struct B; impl A for B { fn new() -> A { B as A } } fn main() { println!("message") }
<anon>:8:10: 8:16 error: cast to unsized type: `B` as `A` <anon>:8 B as A ^~~~~~ <anon>:8:10: 8:11 help: consider using a box or reference as appropriate <anon>:8 B as A ^ <anon>:7:20: 7:21 error: the trait `core::marker::Sized` is not implemented for the type `A + 'static` [E0277] <anon>:7 fn new() -> A { ^ <anon>:7:20: 7:21 note: `A + 'static` does not have a constant size known at compile-time <anon>:7 fn new() -> A { ^ error: aborting due to 2 previous errors playpen: application terminated with error code 101
source share