Skip to main content

CapturingBlock

Struct CapturingBlock 

Source
pub struct CapturingBlock {
    pub capture: *mut c_void,
    /* private fields */
}
Expand description

A block carrying one pointer.

GlobalBlock captures nothing, which is all a block needs when the receiver only ever calls it — but a completion handler has to reach something, and the something differs per call. One captured word is enough for that: it is where the answer gets written.

_NSConcreteStackBlock with no copy/dispose helpers, so a receiver that copies it gets a memcpy and the capture comes along by value. That is only sound while the caller outlives the call, which is why this is used with a wait and not handed to anything that keeps it.

Fields§

§capture: *mut c_void

What the invoke function reads, at a fixed offset from the block.

Implementations§

Source§

impl CapturingBlock

Source

pub unsafe fn new(invoke: *const c_void, capture: *mut c_void) -> Self

Wrap invoke as a block carrying capture.

§Safety

invoke must match the signature the receiver expects, taking the block itself first; and the block must outlive every call to it.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.