[][src]Trait swim_mem::resident::ResidentStow

pub trait ResidentStow<'b, L1: Lease, L2: Lease>: Resident {
    fn new_resident_layout(lease: &L1) -> Layout;
unsafe fn resident_stow(
        src: &mut L1,
        dst: &mut L2,
        hold: &dyn Hold<'b>
    ) -> Result<(), HoldError>;
unsafe fn resident_unstow(src: &mut L1, dst: &mut L2); }

A relocatable Resident of a raw memory Lease.

Required methods

fn new_resident_layout(lease: &L1) -> Layout

Returns the preferred memory layout of a move destination for the resident of the lease.

unsafe fn resident_stow(
    src: &mut L1,
    dst: &mut L2,
    hold: &dyn Hold<'b>
) -> Result<(), HoldError>

Relocates the resident from the src lease to the dst lease. Leaves the src lase in its original state on failure.

unsafe fn resident_unstow(src: &mut L1, dst: &mut L2)

Reverts the most recent resident_stow operation by relocating the resident of the dst lease back to the src lease.

Loading content...

Implementors

impl<'b, L1, L2, M> ResidentStow<'b, L1, L2> for String<M> where
    L1: Lease<Data = u8, Meta = BufHeader<M>>,
    L2: Lease<Data = u8, Meta = BufHeader<M>>,
    M: TryClone
[src]

impl<'b, L1, L2, T, M> ResidentStow<'b, L1, L2> for Buf<T, M> where
    L1: Lease<Data = T, Meta = BufHeader<M>>,
    L2: Lease<Data = T, Meta = BufHeader<M>>,
    T: TryClone,
    M: TryClone
[src]

impl<'b, L1: Lease, L2: Lease> ResidentStow<'b, L1, L2> for Box<L1::Data, L1::Meta> where
    L1::Data: Stow<'b, L2::Data>,
    L1::Meta: Stow<'b, L2::Meta>, 
[src]

Loading content...