# Trait bitflags::__core::ops::Placer [−] [src]

    pub trait Placer<Data> where Data: ?Sized {
        type Place: InPlace<Data>;
        fn make_place(self) -> Self::Place;
    }

Unstable (`placement_new_protocol`)

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`)

`Place` is the intermedate agent guarding the uninitialized state for `Data`.

## Required Methods

### `fn make_place(self) -> Self::Place`

Unstable (`placement_new_protocol`)

Creates a fresh place from `self`.

## Implementors

- `impl<'a, T> Placer for FrontPlace<'a, T>`
- `impl<'a, T> Placer for BackPlace<'a, T>`
- `impl<T> Placer for ExchangeHeapSingleton`

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)