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§
- Autorelease
Pool - An autorelease pool, drained when it goes out of scope.
- Block
Descriptor - The size-and-copy record every block points at.
- Capturing
Block - A block carrying one pointer.
- Class
Builder - A class being built. Add methods, then
register. - Global
Block - An Objective-C block with no captures.
- NSPoint
- NSRect
- NSSize
Functions§
- class
- Look up an Objective-C class by its
OBJC_CLASS_$_Namesymbol. - 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
NSStringfrom a Rust&str. - responds⚠
- Does
receiverimplementselector? - 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.