Trait core::ops::Placer
[−]
[src]
pub trait Placer<Data: ?Sized> {
type Place: InPlace<Data>;
fn make_place(self) -> Self::Place;
}Interface to implementations of PLACE <- EXPR.
PLACE <- EXPR effectively desugars into:
let p = PLACE; let mut place = Placer::make_place(p); let raw_place = Place::pointer(&mut place); let value = EXPR; unsafe { std::ptr::write(raw_place, value); InPlace::finalize(place) }Run
The type of PLACE <- EXPR is derived from the type of PLACE; if the type of PLACE is P, then the final type of the whole expression is P::Place::Owner (see the InPlace and Boxed traits).
Values for types implementing this trait usually are transient intermediate values (e.g. the return value of Vec::emplace_back) or Copy, since the make_place method takes self by value.