Skip to main content

Module objc

Module objc 

Source
Expand description

Minimal Objective-C runtime bridge.

AppKit and UIKit classes are reached through objc_msgSend rather than the Swift calling convention — that is their native ABI, so nothing is lost.

Every send goes through a correctly-typed, non-variadic view of objc_msgSend. On arm64 variadic arguments are passed on the stack, so calling a variadic declaration with real arguments delivers them where the receiver never looks and the callee reads uninitialised registers instead.

Structs§

AutoreleasePool
An autorelease pool, drained when it goes out of scope.
BlockDescriptor
The size-and-copy record every block points at.
CapturingBlock
A block carrying one pointer.
ClassBuilder
A class being built. Add methods, then register.
GlobalBlock
An Objective-C block with no captures.
NSPoint
NSRect
NSSize

Functions§

class
Look up an Objective-C class by its OBJC_CLASS_$_Name symbol.
class_named
Look up a registered class by name, or null.
msg_send_addr
The address of objc_msgSend, for building a typed view of it.
nsstring⚠
Create an NSString from a Rust &str.
responds⚠
Does receiver implement selector?
sel
Register (or look up) a selector.
send⚠
Send a message with a specific, non-variadic signature.
send_bool⚠
Send a message with a specific, non-variadic signature.
send_bool_id⚠
Send a message with a specific, non-variadic signature.
send_f64⚠
Send a message with a specific, non-variadic signature.
send_f64_id⚠
Send a message with a specific, non-variadic signature.
send_i64⚠
Send a message with a specific, non-variadic signature.
send_i64_id⚠
Send a message with a specific, non-variadic signature.
send_id⚠
Send a message with a specific, non-variadic signature.
send_id_bool⚠
Send a message with a specific, non-variadic signature.
send_id_id⚠
Send a message with a specific, non-variadic signature.
send_id_ret_bool⚠
Send a message with a specific, non-variadic signature.
send_id_ret_f64⚠
Send a message with a specific, non-variadic signature.
send_id_ret_i64⚠
Send a message with a specific, non-variadic signature.
send_rect⚠
Send a message with a specific, non-variadic signature.
send_rect_id⚠
Send a message with a specific, non-variadic signature.
send_ret_bool⚠
Send a message with a specific, non-variadic signature.
send_ret_f64⚠
Send a message with a specific, non-variadic signature.
send_ret_ptr⚠
Send a message with a specific, non-variadic signature.
send_ret_rect⚠
Send a message with a specific, non-variadic signature.
send_ret_size⚠
Send a message with a specific, non-variadic signature.
send_ret_u64⚠
Send a message with a specific, non-variadic signature.
send_u64⚠
Send a message with a specific, non-variadic signature.
send_u64_id⚠
Send a message with a specific, non-variadic signature.
shared_app⚠
[NSApplication sharedApplication], pinned to the light appearance so that rendering does not depend on the host’s system setting.