#[repr(C)]
pub struct Block_layout { pub isa: *const Class, pub flags: block_flags, pub reserved: i32, pub invoke: Option<unsafe extern "C" fn()>, pub descriptor: *const c_void, }

Fields

isa: *const Class

Class pointer. Always initialised to &_NSConcreteStackBlock for blocks that are created on the stack or &_NSConcreteGlobalBlock for blocks that are created in global storage.

flags: block_flags

Flags. See the block_flags enumerated type for possible values. Contains ref count in Apple and ObjFW.

reserved: i32

Reserved - always initialised to 0 by the compiler (but this is not said in the specification).

Used for the reference count in GNUStep and WinObjC.

invoke: Option<unsafe extern "C" fn()>

The function that implements the block. The first argument is this structure, the subsequent arguments are the block’s explicit parameters. If the BLOCK_USE_SRET & BLOCK_HAS_SIGNATURE flag is set, there is an additional hidden argument, which is a pointer to the space on the stack allocated to hold the return value.

descriptor: *const c_void

The block’s descriptor. The actual type of this is:

match (BLOCK_HAS_COPY_DISPOSE, BLOCK_HAS_SIGNATURE) {
    (false, false) => Block_descriptor_header,
    (true, false) => Block_descriptor,
    (false, true) => Block_descriptor_basic,
    (true, true) => Block_descriptor_with_signature,
}

But it is safe to access this through just Block_descriptor_header.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.