Trait CownPtrs

Source
pub unsafe trait CownPtrs {
    type CownRefs<'l>
       where Self: 'l;

    // Required methods
    fn requests(&self) -> Vec<Request>;
    unsafe fn get_mut<'l>(self) -> Self::CownRefs<'l>;
}
Expand description

Trait for a collection of CownPtrs.

Users pass CownPtrs to when! clause to specify a collection of shared resources, and such resources can be accessed via CownRefs inside the thunk.

§Safety

requests should actually return the requests for the corresponding cowns.

Required Associated Types§

Source

type CownRefs<'l> where Self: 'l

Types for references corresponding to CownPtrs.

Required Methods§

Source

fn requests(&self) -> Vec<Request>

Returns a collection of Request.

Source

unsafe fn get_mut<'l>(self) -> Self::CownRefs<'l>

Returns mutable references of type CownRefs.

§Safety

Must be called only if it is safe to access the shared resources.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl CownPtrs for ()

Source§

type CownRefs<'l> = () where Self: 'l

Source§

fn requests(&self) -> Vec<Request>

Source§

unsafe fn get_mut<'l>(self) -> Self::CownRefs<'l>

Source§

impl<T: Send + 'static, Ts: CownPtrs> CownPtrs for (CownPtr<T>, Ts)

Source§

type CownRefs<'l> = (&'l mut T, <Ts as CownPtrs>::CownRefs<'l>) where Self: 'l

Source§

fn requests(&self) -> Vec<Request>

Source§

unsafe fn get_mut<'l>(self) -> Self::CownRefs<'l>

Implementors§

Source§

impl<T: Send + 'static> CownPtrs for Vec<CownPtr<T>>

Source§

type CownRefs<'l> = Vec<&'l mut T> where Self: 'l