Trait std::ops::Placer
[−]
[src]
pub trait Placer<Data> where Data: ?Sized {
type Place: InPlace<Data>;
fn make_place(self) -> Self::Place;
}Unstable (
placement_new_protocol #27779)Interface to implementations of in (PLACE) EXPR.
in (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) }
The type of in (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.
Associated Types
type Place: InPlace<Data>
Unstable (
placement_new_protocol #27779)Place is the intermedate agent guarding the
uninitialized state for Data.
Required Methods
fn make_place(self) -> Self::Place
Unstable (
placement_new_protocol #27779)Creates a fresh place from self.
Implementors
impl<T> Placer<T> for ExchangeHeapSingletonimpl<'a, T> Placer<T> for FrontPlace<'a, T>impl<'a, T> Placer<T> for BackPlace<'a, T>