# [−][src]Struct smithay_client_toolkit::utils::DoubleMemPool

    pub struct DoubleMemPool { /* fields omitted */ }

A Double memory pool, for convenient double-buffering

This type wraps two internal memory pool, and can be use for conveniently implementing double-buffering in your apps.

DoubleMemPool requires a implementation that is called when one of the two internal memory pools becomes free after None was returned from the `pool()` method.

## Methods

### `impl DoubleMemPool`[src]

#### `pub fn new<Impl>(
shm: &Proxy<WlShm>,
implementation: Impl
) -> Result<DoubleMemPool> where
Impl: FnMut() + Send + 'static,` [src]

Create a double memory pool

#### `pub fn pool(&mut self) -> Option<&mut MemPool>`[src]

This method checks both its internal memory pools and returns one if that pool does not contain any buffers that are still in use by the server. If both the memory pools contain buffers that are currently in use by the server None will be returned.

## Auto Trait Implementations

### `impl Send for DoubleMemPool`

### `impl Unpin for DoubleMemPool`

### `impl Sync for DoubleMemPool`

### `impl !UnwindSafe for DoubleMemPool`

### `impl !RefUnwindSafe for DoubleMemPool`

## Blanket Implementations

### `impl<T, U> Into<U> for T where
U: From<T>,` [src]

#### `fn into(self) -> U`[src]

Performs the conversion.

### `impl<T> From<T> for T`[src]

#### `fn from(t: T) -> T`[src]

Performs the conversion.

### `impl<T, U> TryFrom<U> for T where
U: Into<T>,` [src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>`[src]

Performs the conversion.

### `impl<T, U> TryInto<U> for T where
U: TryFrom<T>,` [src]

#### `type Error = <U as TryFrom<T>>::Error`

The type returned in the event of a conversion error.

#### `fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>`[src]

Performs the conversion.

### `impl<T> BorrowMut<T> for T where
T: ?Sized,` [src]

#### `fn borrow_mut(&mut self) -> &mut T`[src]

Mutably borrows from an owned value. Read more

### `impl<T> Borrow<T> for T where
T: ?Sized,` [src]

#### `fn borrow(&self) -> &T`[src]

Immutably borrows from an owned value. Read more

### `impl<T> Any for T where
T: 'static + ?Sized,` [src]

#### `fn type_id(&self) -> TypeId`[src]

Gets the `TypeId` of `self`. Read more

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

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

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)