You shouldn't return a Box<T> unless you have to: box does placement
new, so by not doing it yourself, you give them options:
struct Point {
x: int,
y: int,
}
impl Point {
fn bad_new() -> Box<Point> {
box Point { x: 1, y: 1 }
}
fn good_new() -> Point {
Point { x: 1, y: 1 }
}
}
fn main() {
let x = Point::bad_new(); // this _must_ be Box<Point>, and nothing else
let y = box Point::good_new(); // this is a Box<Point>, with no copy, but...
let z = box(std::gc::Gc) Point::good_new(); // this is a Gc<Point>,
with no copy.
}
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev