Struct block_sys::Block_layout[][src]

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

Fields

isa: *mut 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(block: *mut Block_layout, ...)>

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: *mut Block_descriptor_header

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

Performs the conversion.

Performs the conversion.

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.