[][src]Type Definition swim_mem::lease::SoftBuf

type SoftBuf<'a, T, M = ()> = Soft<'a, Buf<T, M>>;

Undereferenceable weak owner of a resizeable array of values stored in a Hold-allocated, atomically reference counted memory block.

Examples

Create a strongly referenced buffer, then obtain a weak reference to it:

let hard = HardBuf::<u8>::from_clone(&[2, 3]);
let soft = hard.to_soft();

Recover a strong mutable reference from a soft reference, and push values onto the end of the buffer, growing its capacity as needed:

let hard = HardBuf::<u8>::from_clone(&[1, 2]);
let soft = hard.to_soft();
let mut recover = unsafe { soft.try_to_mut() }.unwrap();
recover.push(3);

Recover a strong immutable reference from a soft reference, and access its its elements by index:

let hard = HardBuf::<u8>::from_clone(&[1, 2, 3]);
let soft = hard.to_soft();
let recover = soft.try_to_ref().unwrap();
let three = recover[2];