Skip to main content

swiftui_sys/
lib.rs

1//! Raw FFI bindings to SwiftUI via a generated Swift `@_cdecl` bridge.
2//!
3//! This crate is auto-generated by `swift-bridge-gen`. Do not edit manually.
4//! The ergonomic API is in the `swiftui` crate.
5//!
6//! All functions require `libSwiftUIBridge.dylib` to be loaded via `dlopen`
7//! before use. Use [`load`] to load and resolve all symbols.
8
9//!
10//! ## Citation
11//!
12//! ```bibtex
13//! @software{rswift,
14//!   author       = {Eugene Hauptmann},
15//!   title        = {rswift},
16//!   year         = {2025},
17//!   url          = {https://github.com/eugenehp/rswift},
18//!   note         = {Build native Apple apps from Rust}
19//! }
20//! ```
21//!
22//! ## License
23//!
24//! GPL-3.0 — Copyright © 2025 [Eugene Hauptmann](https://github.com/eugenehp)
25
26#![allow(non_snake_case, dead_code)]
27
28use core::ffi::{c_char, c_void};
29use std::ffi::CString;
30
31pub type Handle = *mut c_void;
32
33unsafe extern "C" {
34    fn dlopen(path: *const c_char, mode: i32) -> *mut c_void;
35    fn dlsym(handle: *mut c_void, symbol: *const c_char) -> *mut c_void;
36}
37
38fn sym(h: *mut c_void, name: &core::ffi::CStr) -> *mut c_void {
39    let p = unsafe { dlsym(h, name.as_ptr()) };
40    assert!(!p.is_null(), "Symbol not found: {}", name.to_str().unwrap());
41    p
42}
43
44/// All resolved function pointers from the Swift bridge dylib.
45pub struct Fns {
46    // Views
47    pub text: unsafe extern "C" fn(*const u8, usize) -> Handle,
48    pub styled_text: unsafe extern "C" fn(*const u8, usize, f32, i32, f32, f32, f32, f32) -> Handle,
49    pub system_image: unsafe extern "C" fn(*const u8, usize) -> Handle,
50    pub spacer: unsafe extern "C" fn() -> Handle,
51    pub divider: unsafe extern "C" fn() -> Handle,
52    pub color: unsafe extern "C" fn(f32, f32, f32, f32) -> Handle,
53    pub progress: unsafe extern "C" fn(f32, f32) -> Handle,
54    pub toggle: unsafe extern "C" fn(*const u8, usize, bool) -> Handle,
55    pub textfield: unsafe extern "C" fn(*const u8, usize, *const u8, usize) -> Handle,
56    pub button: unsafe extern "C" fn(
57        *const u8,
58        usize,
59        unsafe extern "C" fn(*mut c_void),
60        *mut c_void,
61    ) -> Handle,
62
63    // Stacks
64    pub vstack: unsafe extern "C" fn(*const Handle, usize) -> Handle,
65    pub hstack: unsafe extern "C" fn(*const Handle, usize) -> Handle,
66    pub zstack: unsafe extern "C" fn(*const Handle, usize) -> Handle,
67    pub scroll_view: unsafe extern "C" fn(Handle) -> Handle,
68
69    // Modifiers
70    pub padding: unsafe extern "C" fn(Handle, f32) -> Handle,
71    pub frame: unsafe extern "C" fn(Handle, f32, f32) -> Handle,
72    pub background_color: unsafe extern "C" fn(Handle, f32, f32, f32, f32) -> Handle,
73    pub corner_radius: unsafe extern "C" fn(Handle, f32) -> Handle,
74    pub opacity: unsafe extern "C" fn(Handle, f32) -> Handle,
75    pub border: unsafe extern "C" fn(Handle, f32, f32, f32, f32) -> Handle,
76    pub foreground_color: unsafe extern "C" fn(Handle, f32, f32, f32, f32) -> Handle,
77    pub shadow: unsafe extern "C" fn(Handle, f32, f32, f32, f32, f32, f32) -> Handle,
78    pub offset: unsafe extern "C" fn(Handle, f32, f32) -> Handle,
79    pub scale: unsafe extern "C" fn(Handle, f32) -> Handle,
80    pub rotation: unsafe extern "C" fn(Handle, f32) -> Handle,
81    pub hidden: unsafe extern "C" fn(Handle) -> Handle,
82    pub disabled: unsafe extern "C" fn(Handle, bool) -> Handle,
83    pub overlay: unsafe extern "C" fn(Handle, Handle) -> Handle,
84    pub clip_circle: unsafe extern "C" fn(Handle) -> Handle,
85    pub font_system: unsafe extern "C" fn(Handle, f32, i32) -> Handle,
86
87    // Additional views
88    pub label: unsafe extern "C" fn(*const u8, usize, *const u8, usize) -> Handle,
89    pub slider: unsafe extern "C" fn(f32, f32, f32) -> Handle,
90    pub link: unsafe extern "C" fn(*const u8, usize, *const u8, usize) -> Handle,
91
92    // Gestures
93    pub on_tap:
94        unsafe extern "C" fn(Handle, unsafe extern "C" fn(*mut c_void), *mut c_void) -> Handle,
95    pub on_long_press:
96        unsafe extern "C" fn(Handle, unsafe extern "C" fn(*mut c_void), *mut c_void) -> Handle,
97
98    // Bound controls
99    pub bound_textfield: unsafe extern "C" fn(
100        *const u8,
101        usize,
102        *const u8,
103        usize,
104        unsafe extern "C" fn(*const u8, usize, *mut c_void),
105        *mut c_void,
106    ) -> Handle,
107    pub bound_toggle: unsafe extern "C" fn(
108        *const u8,
109        usize,
110        bool,
111        unsafe extern "C" fn(bool, *mut c_void),
112        *mut c_void,
113    ) -> Handle,
114    pub bound_slider: unsafe extern "C" fn(
115        f32,
116        f32,
117        f32,
118        unsafe extern "C" fn(f32, *mut c_void),
119        *mut c_void,
120    ) -> Handle,
121
122    // List / Sheet / Alert / Animation
123    pub list: unsafe extern "C" fn(*const Handle, usize) -> Handle,
124    pub sheet: unsafe extern "C" fn(Handle, Handle, bool) -> Handle,
125    pub alert: unsafe extern "C" fn(Handle, *const u8, usize, *const u8, usize, bool) -> Handle,
126    pub animation: unsafe extern "C" fn(Handle, i32) -> Handle,
127
128    // Extra modifiers
129    pub blur: unsafe extern "C" fn(Handle, f32) -> Handle,
130    pub brightness: unsafe extern "C" fn(Handle, f32) -> Handle,
131    pub saturation: unsafe extern "C" fn(Handle, f32) -> Handle,
132    pub grayscale: unsafe extern "C" fn(Handle, f32) -> Handle,
133    pub help_text: unsafe extern "C" fn(Handle, *const u8, usize) -> Handle,
134    pub line_limit: unsafe extern "C" fn(Handle, i32) -> Handle,
135    pub fixed_size_mod: unsafe extern "C" fn(Handle) -> Handle,
136    pub aspect_ratio: unsafe extern "C" fn(Handle, f32, i32) -> Handle,
137    pub clipped: unsafe extern "C" fn(Handle) -> Handle,
138    pub tint: unsafe extern "C" fn(Handle, f32, f32, f32) -> Handle,
139    pub badge: unsafe extern "C" fn(Handle, i32) -> Handle,
140
141    // Extra views
142    pub secure_field: unsafe extern "C" fn(*const u8, usize, *const u8, usize) -> Handle,
143    pub text_editor: unsafe extern "C" fn(*const u8, usize) -> Handle,
144    pub stepper: unsafe extern "C" fn(*const u8, usize, i32, i32, i32) -> Handle,
145    pub group_box: unsafe extern "C" fn(*const u8, usize, Handle) -> Handle,
146
147    // TabView / Picker / Menu
148    pub tabview: unsafe extern "C" fn(
149        *const Handle,
150        *const *const u8,
151        *const usize,
152        *const *const u8,
153        *const usize,
154        usize,
155    ) -> Handle,
156    pub bound_picker: unsafe extern "C" fn(
157        *const u8,
158        usize,
159        *const *const u8,
160        *const usize,
161        usize,
162        i32,
163        unsafe extern "C" fn(i32, *mut c_void),
164        *mut c_void,
165    ) -> Handle,
166    pub menu: unsafe extern "C" fn(*const u8, usize, Handle) -> Handle,
167    pub context_menu: unsafe extern "C" fn(Handle, Handle) -> Handle,
168
169    // Nav / Toolbar / Grid / Form
170    pub navigation_title: unsafe extern "C" fn(Handle, *const u8, usize) -> Handle,
171    pub toolbar: unsafe extern "C" fn(Handle, Handle) -> Handle,
172    pub grid: unsafe extern "C" fn(*const Handle, usize, i32) -> Handle,
173    pub form: unsafe extern "C" fn(*const Handle, usize) -> Handle,
174    pub section: unsafe extern "C" fn(*const u8, usize, *const Handle, usize) -> Handle,
175
176    // Per-view lifecycle
177    pub on_appear:
178        unsafe extern "C" fn(Handle, unsafe extern "C" fn(*mut c_void), *mut c_void) -> Handle,
179    pub on_disappear:
180        unsafe extern "C" fn(Handle, unsafe extern "C" fn(*mut c_void), *mut c_void) -> Handle,
181
182    // Bold / Italic on any view
183    pub bold_mod: unsafe extern "C" fn(Handle) -> Handle,
184    pub italic_mod: unsafe extern "C" fn(Handle) -> Handle,
185
186    // Popover
187    pub popover: unsafe extern "C" fn(Handle, Handle, bool) -> Handle,
188
189    // Remaining modifiers
190    pub color_invert: unsafe extern "C" fn(Handle) -> Handle,
191    pub ignores_safe_area: unsafe extern "C" fn(Handle) -> Handle,
192    pub confirmation_dialog: unsafe extern "C" fn(Handle, *const u8, usize, bool, Handle) -> Handle,
193    pub keyboard_shortcut: unsafe extern "C" fn(Handle, *const u8, usize) -> Handle,
194    pub focusable: unsafe extern "C" fn(Handle) -> Handle,
195    pub truncation_mode: unsafe extern "C" fn(Handle, i32) -> Handle,
196    pub multiline_alignment: unsafe extern "C" fn(Handle, i32) -> Handle,
197    pub minimum_scale_factor: unsafe extern "C" fn(Handle, f32) -> Handle,
198
199    // Accessibility
200    pub accessibility_label: unsafe extern "C" fn(Handle, *const u8, usize) -> Handle,
201    pub accessibility_hint: unsafe extern "C" fn(Handle, *const u8, usize) -> Handle,
202    pub accessibility_hidden: unsafe extern "C" fn(Handle, bool) -> Handle,
203    pub accessibility_value: unsafe extern "C" fn(Handle, *const u8, usize) -> Handle,
204
205    // Animation extended
206    pub animation_duration: unsafe extern "C" fn(Handle, i32, f32) -> Handle,
207    pub animation_spring_params: unsafe extern "C" fn(Handle, f32, f32) -> Handle,
208    pub transition: unsafe extern "C" fn(Handle, i32) -> Handle,
209
210    // Gestures
211    pub on_drag: unsafe extern "C" fn(
212        Handle,
213        unsafe extern "C" fn(f32, f32, *mut c_void),
214        *mut c_void,
215    ) -> Handle,
216    pub on_magnify:
217        unsafe extern "C" fn(Handle, unsafe extern "C" fn(f32, *mut c_void), *mut c_void) -> Handle,
218    pub on_rotate:
219        unsafe extern "C" fn(Handle, unsafe extern "C" fn(f32, *mut c_void), *mut c_void) -> Handle,
220
221    // Canvas / Geometry / ScrollViewReader / Timeline
222    pub geometry_reader: unsafe extern "C" fn(
223        unsafe extern "C" fn(f32, f32, *mut c_void) -> Handle,
224        *mut c_void,
225    ) -> Handle,
226    pub scroll_view_reader: unsafe extern "C" fn(Handle) -> Handle,
227    pub scrollable_id: unsafe extern "C" fn(Handle, *const u8, usize) -> Handle,
228    pub timeline_view: unsafe extern "C" fn(
229        f32,
230        unsafe extern "C" fn(f32, *mut c_void) -> Handle,
231        *mut c_void,
232    ) -> Handle,
233
234    // withAnimation / matchedGeometry / task
235    pub with_animation:
236        unsafe extern "C" fn(i32, f32, unsafe extern "C" fn(*mut c_void), *mut c_void),
237    pub matched_geometry: unsafe extern "C" fn(Handle, *const u8, usize) -> Handle,
238    pub task:
239        unsafe extern "C" fn(Handle, unsafe extern "C" fn(*mut c_void), *mut c_void) -> Handle,
240    pub photos_picker: unsafe extern "C" fn(
241        *const u8,
242        usize,
243        unsafe extern "C" fn(*const u8, usize, *mut c_void),
244        *mut c_void,
245    ) -> Handle,
246
247    // Map / Video
248    pub map: unsafe extern "C" fn(f32, f32, f32, f32) -> Handle,
249    pub video_player: unsafe extern "C" fn(*const u8, usize) -> Handle,
250
251    // Searchable / Refreshable / SwipeActions
252    pub searchable: unsafe extern "C" fn(
253        Handle,
254        unsafe extern "C" fn(*const u8, usize, *mut c_void),
255        *mut c_void,
256    ) -> Handle,
257    pub refreshable:
258        unsafe extern "C" fn(Handle, unsafe extern "C" fn(*mut c_void), *mut c_void) -> Handle,
259    pub swipe_actions_delete:
260        unsafe extern "C" fn(Handle, unsafe extern "C" fn(*mut c_void), *mut c_void) -> Handle,
261    pub swipe_actions_custom: unsafe extern "C" fn(Handle, Handle, i32) -> Handle,
262
263    // Batch modifiers
264    pub blend_mode: unsafe extern "C" fn(Handle, i32) -> Handle,
265    pub mask: unsafe extern "C" fn(Handle, Handle) -> Handle,
266    pub drawing_group: unsafe extern "C" fn(Handle) -> Handle,
267    pub allows_hit_testing: unsafe extern "C" fn(Handle, bool) -> Handle,
268    pub content_shape: unsafe extern "C" fn(Handle, i32) -> Handle,
269    pub safe_area_inset_bottom: unsafe extern "C" fn(Handle, Handle) -> Handle,
270    pub safe_area_inset_top: unsafe extern "C" fn(Handle, Handle) -> Handle,
271    pub list_row_background: unsafe extern "C" fn(Handle, Handle) -> Handle,
272    pub list_row_separator: unsafe extern "C" fn(Handle, bool) -> Handle,
273    pub overlay_aligned: unsafe extern "C" fn(Handle, Handle, i32) -> Handle,
274    pub background_aligned: unsafe extern "C" fn(Handle, Handle, i32) -> Handle,
275    pub preferred_color_scheme: unsafe extern "C" fn(Handle, bool) -> Handle,
276
277    // AppStorage
278    pub app_storage_get_string:
279        unsafe extern "C" fn(*const u8, usize, *mut *mut c_void, *mut usize) -> bool,
280    pub app_storage_set_string: unsafe extern "C" fn(*const u8, usize, *const u8, usize),
281    pub app_storage_get_int: unsafe extern "C" fn(*const u8, usize) -> isize,
282    pub app_storage_set_int: unsafe extern "C" fn(*const u8, usize, isize),
283    pub app_storage_get_bool: unsafe extern "C" fn(*const u8, usize) -> bool,
284    pub app_storage_set_bool: unsafe extern "C" fn(*const u8, usize, bool),
285
286    // NavigationStack / NavigationLink
287    pub navigation_stack: unsafe extern "C" fn(Handle) -> Handle,
288    pub navigation_link: unsafe extern "C" fn(*const u8, usize, Handle) -> Handle,
289
290    // onChange / containerRelativeFrame / Canvas / Phase animation
291    pub on_change_int: unsafe extern "C" fn(
292        Handle,
293        isize,
294        unsafe extern "C" fn(isize, *mut c_void),
295        *mut c_void,
296    ) -> Handle,
297    pub container_relative_frame: unsafe extern "C" fn(Handle, i32) -> Handle,
298    pub canvas_commands: unsafe extern "C" fn(f32, f32, *const f32, usize) -> Handle,
299    pub phase_animation: unsafe extern "C" fn(Handle, i32) -> Handle,
300    pub phase_animation_scale: unsafe extern "C" fn(Handle, *const f32, usize) -> Handle,
301
302    // Custom bezier / Keyframes / ScrollTo / FocusState / Table
303    pub animation_bezier: unsafe extern "C" fn(Handle, f32, f32, f32, f32, f32) -> Handle,
304    pub keyframe_animation: unsafe extern "C" fn(Handle, *const f32, usize, bool) -> Handle,
305    pub scroll_reader_create: unsafe extern "C" fn(Handle) -> Handle,
306    pub scroll_to: unsafe extern "C" fn(Handle, *const u8, usize),
307    pub focus_model_create: unsafe extern "C" fn() -> *mut c_void,
308    pub focus_model_set: unsafe extern "C" fn(*mut c_void, *const u8, usize),
309    pub focus_model_clear: unsafe extern "C" fn(*mut c_void),
310    pub focusable_textfield: unsafe extern "C" fn(
311        *const u8,
312        usize,
313        *const u8,
314        usize,
315        *const u8,
316        usize,
317        unsafe extern "C" fn(*const u8, usize, *mut c_void),
318        *mut c_void,
319        *mut c_void,
320    ) -> Handle,
321
322    // Symbol effects
323    pub symbol_effect_bounce: unsafe extern "C" fn(Handle) -> Handle,
324    pub symbol_effect_pulse: unsafe extern "C" fn(Handle) -> Handle,
325    pub symbol_effect_variable_color: unsafe extern "C" fn(Handle) -> Handle,
326
327    // Remaining views
328    pub disclosure_group: unsafe extern "C" fn(*const u8, usize, Handle) -> Handle,
329    pub labeled_content: unsafe extern "C" fn(*const u8, usize, Handle) -> Handle,
330    pub navigation_split_view: unsafe extern "C" fn(Handle, Handle) -> Handle,
331    pub content_unavailable:
332        unsafe extern "C" fn(*const u8, usize, *const u8, usize, *const u8, usize) -> Handle,
333    pub share_link: unsafe extern "C" fn(*const u8, usize, *const u8, usize) -> Handle,
334
335    // Missing views
336    pub async_image: unsafe extern "C" fn(*const u8, usize) -> Handle,
337    pub color_picker_bound: unsafe extern "C" fn(
338        *const u8,
339        usize,
340        f32,
341        f32,
342        f32,
343        unsafe extern "C" fn(f32, f32, f32, *mut c_void),
344        *mut c_void,
345    ) -> Handle,
346    pub date_picker_bound: unsafe extern "C" fn(
347        *const u8,
348        usize,
349        f64,
350        unsafe extern "C" fn(f64, *mut c_void),
351        *mut c_void,
352    ) -> Handle,
353    pub empty_view: unsafe extern "C" fn() -> Handle,
354    pub lazy_hgrid: unsafe extern "C" fn(*const Handle, usize, i32) -> Handle,
355    pub timer_start:
356        unsafe extern "C" fn(f32, unsafe extern "C" fn(*mut c_void), *mut c_void) -> *mut c_void,
357    pub timer_stop: unsafe extern "C" fn(*mut c_void),
358
359    // Lifecycle
360    pub release: unsafe extern "C" fn(Handle),
361    pub retain: unsafe extern "C" fn(Handle),
362
363    // Window
364    pub show_window: unsafe extern "C" fn(Handle, *const u8, usize, f32, f32),
365
366    // Snapshot (optional — may be null)
367    pub snapshot:
368        Option<unsafe extern "C" fn(Handle, f32, f32, *mut *mut c_void, *mut usize) -> bool>,
369    pub snapshot_free: Option<unsafe extern "C" fn(*mut c_void, usize)>,
370    pub compare_png:
371        Option<unsafe extern "C" fn(*const c_void, usize, *const c_void, usize, f32) -> f32>,
372}
373
374/// Load the Swift bridge dylib and resolve all symbols.
375#[allow(clippy::missing_transmute_annotations)]
376pub fn load(path: &str) -> Result<Fns, String> {
377    unsafe {
378        // Load SwiftUI framework
379        dlopen(
380            c"/System/Library/Frameworks/SwiftUI.framework/SwiftUI".as_ptr(),
381            1,
382        );
383
384        let cpath = CString::new(path).unwrap();
385        let h = dlopen(cpath.as_ptr(), 2);
386        if h.is_null() {
387            return Err(format!("Failed to load {path}"));
388        }
389
390        let snap_ptr = dlsym(h, c"snapshot_view_handle".as_ptr());
391        let free_ptr = dlsym(h, c"free_snapshot".as_ptr());
392        let cmp_ptr = dlsym(h, c"compare_png_bytes".as_ptr());
393
394        Ok(Fns {
395            text: std::mem::transmute(sym(h, c"swiftui_text")),
396            styled_text: std::mem::transmute(sym(h, c"swiftui_text_styled")),
397            system_image: std::mem::transmute(sym(h, c"swiftui_system_image")),
398            spacer: std::mem::transmute(sym(h, c"swiftui_spacer")),
399            divider: std::mem::transmute(sym(h, c"swiftui_divider")),
400            color: std::mem::transmute(sym(h, c"swiftui_color")),
401            progress: std::mem::transmute(sym(h, c"swiftui_progress")),
402            toggle: std::mem::transmute(sym(h, c"swiftui_toggle")),
403            textfield: std::mem::transmute(sym(h, c"swiftui_textfield")),
404            button: std::mem::transmute(sym(h, c"swiftui_button")),
405            vstack: std::mem::transmute(sym(h, c"swiftui_vstack")),
406            hstack: std::mem::transmute(sym(h, c"swiftui_hstack")),
407            zstack: std::mem::transmute(sym(h, c"swiftui_zstack")),
408            scroll_view: std::mem::transmute(sym(h, c"swiftui_scroll_view")),
409            padding: std::mem::transmute(sym(h, c"swiftui_padding")),
410            frame: std::mem::transmute(sym(h, c"swiftui_frame")),
411            background_color: std::mem::transmute(sym(h, c"swiftui_background_color")),
412            corner_radius: std::mem::transmute(sym(h, c"swiftui_corner_radius")),
413            opacity: std::mem::transmute(sym(h, c"swiftui_opacity")),
414            border: std::mem::transmute(sym(h, c"swiftui_border")),
415            foreground_color: std::mem::transmute(sym(h, c"swiftui_foreground_color")),
416            shadow: std::mem::transmute(sym(h, c"swiftui_shadow")),
417            offset: std::mem::transmute(sym(h, c"swiftui_offset")),
418            scale: std::mem::transmute(sym(h, c"swiftui_scale")),
419            rotation: std::mem::transmute(sym(h, c"swiftui_rotation")),
420            hidden: std::mem::transmute(sym(h, c"swiftui_hidden")),
421            disabled: std::mem::transmute(sym(h, c"swiftui_disabled")),
422            overlay: std::mem::transmute(sym(h, c"swiftui_overlay")),
423            clip_circle: std::mem::transmute(sym(h, c"swiftui_clip_circle")),
424            font_system: std::mem::transmute(sym(h, c"swiftui_font_system")),
425            label: std::mem::transmute(sym(h, c"swiftui_label")),
426            slider: std::mem::transmute(sym(h, c"swiftui_slider")),
427            link: std::mem::transmute(sym(h, c"swiftui_link")),
428            on_tap: std::mem::transmute(sym(h, c"swiftui_on_tap")),
429            on_long_press: std::mem::transmute(sym(h, c"swiftui_on_long_press")),
430            bound_textfield: std::mem::transmute(sym(h, c"swiftui_bound_textfield")),
431            bound_toggle: std::mem::transmute(sym(h, c"swiftui_bound_toggle")),
432            bound_slider: std::mem::transmute(sym(h, c"swiftui_bound_slider")),
433            list: std::mem::transmute(sym(h, c"swiftui_list")),
434            sheet: std::mem::transmute(sym(h, c"swiftui_sheet")),
435            alert: std::mem::transmute(sym(h, c"swiftui_alert")),
436            animation: std::mem::transmute(sym(h, c"swiftui_animation")),
437            blur: std::mem::transmute(sym(h, c"swiftui_blur")),
438            brightness: std::mem::transmute(sym(h, c"swiftui_brightness")),
439            saturation: std::mem::transmute(sym(h, c"swiftui_saturation")),
440            grayscale: std::mem::transmute(sym(h, c"swiftui_grayscale")),
441            help_text: std::mem::transmute(sym(h, c"swiftui_help")),
442            line_limit: std::mem::transmute(sym(h, c"swiftui_line_limit")),
443            fixed_size_mod: std::mem::transmute(sym(h, c"swiftui_fixed_size")),
444            aspect_ratio: std::mem::transmute(sym(h, c"swiftui_aspect_ratio")),
445            clipped: std::mem::transmute(sym(h, c"swiftui_clipped")),
446            tint: std::mem::transmute(sym(h, c"swiftui_tint")),
447            badge: std::mem::transmute(sym(h, c"swiftui_badge")),
448            secure_field: std::mem::transmute(sym(h, c"swiftui_secure_field")),
449            text_editor: std::mem::transmute(sym(h, c"swiftui_text_editor")),
450            stepper: std::mem::transmute(sym(h, c"swiftui_stepper")),
451            group_box: std::mem::transmute(sym(h, c"swiftui_group_box")),
452            tabview: std::mem::transmute(sym(h, c"swiftui_tabview")),
453            bound_picker: std::mem::transmute(sym(h, c"swiftui_bound_picker")),
454            menu: std::mem::transmute(sym(h, c"swiftui_menu")),
455            context_menu: std::mem::transmute(sym(h, c"swiftui_context_menu")),
456            navigation_title: std::mem::transmute(sym(h, c"swiftui_navigation_title")),
457            toolbar: std::mem::transmute(sym(h, c"swiftui_toolbar")),
458            grid: std::mem::transmute(sym(h, c"swiftui_grid")),
459            form: std::mem::transmute(sym(h, c"swiftui_form")),
460            section: std::mem::transmute(sym(h, c"swiftui_section")),
461            on_appear: std::mem::transmute(sym(h, c"swiftui_on_appear")),
462            on_disappear: std::mem::transmute(sym(h, c"swiftui_on_disappear")),
463            bold_mod: std::mem::transmute(sym(h, c"swiftui_bold")),
464            italic_mod: std::mem::transmute(sym(h, c"swiftui_italic")),
465            popover: std::mem::transmute(sym(h, c"swiftui_popover")),
466            color_invert: std::mem::transmute(sym(h, c"swiftui_color_invert")),
467            ignores_safe_area: std::mem::transmute(sym(h, c"swiftui_ignores_safe_area")),
468            confirmation_dialog: std::mem::transmute(sym(h, c"swiftui_confirmation_dialog")),
469            keyboard_shortcut: std::mem::transmute(sym(h, c"swiftui_keyboard_shortcut")),
470            focusable: std::mem::transmute(sym(h, c"swiftui_focusable")),
471            truncation_mode: std::mem::transmute(sym(h, c"swiftui_truncation_mode")),
472            multiline_alignment: std::mem::transmute(sym(h, c"swiftui_multiline_alignment")),
473            minimum_scale_factor: std::mem::transmute(sym(h, c"swiftui_minimum_scale_factor")),
474            accessibility_label: std::mem::transmute(sym(h, c"swiftui_accessibility_label")),
475            accessibility_hint: std::mem::transmute(sym(h, c"swiftui_accessibility_hint")),
476            accessibility_hidden: std::mem::transmute(sym(h, c"swiftui_accessibility_hidden")),
477            accessibility_value: std::mem::transmute(sym(h, c"swiftui_accessibility_value")),
478            disclosure_group: std::mem::transmute(sym(h, c"swiftui_disclosure_group")),
479            labeled_content: std::mem::transmute(sym(h, c"swiftui_labeled_content")),
480            navigation_split_view: std::mem::transmute(sym(h, c"swiftui_navigation_split_view")),
481            content_unavailable: std::mem::transmute(sym(h, c"swiftui_content_unavailable")),
482            share_link: std::mem::transmute(sym(h, c"swiftui_share_link")),
483            blend_mode: std::mem::transmute(sym(h, c"swiftui_blend_mode")),
484            mask: std::mem::transmute(sym(h, c"swiftui_mask")),
485            drawing_group: std::mem::transmute(sym(h, c"swiftui_drawing_group")),
486            allows_hit_testing: std::mem::transmute(sym(h, c"swiftui_allows_hit_testing")),
487            content_shape: std::mem::transmute(sym(h, c"swiftui_content_shape")),
488            safe_area_inset_bottom: std::mem::transmute(sym(h, c"swiftui_safe_area_inset_bottom")),
489            safe_area_inset_top: std::mem::transmute(sym(h, c"swiftui_safe_area_inset_top")),
490            list_row_background: std::mem::transmute(sym(h, c"swiftui_list_row_background")),
491            list_row_separator: std::mem::transmute(sym(h, c"swiftui_list_row_separator")),
492            overlay_aligned: std::mem::transmute(sym(h, c"swiftui_overlay_aligned")),
493            background_aligned: std::mem::transmute(sym(h, c"swiftui_background_aligned")),
494            preferred_color_scheme: std::mem::transmute(sym(h, c"swiftui_preferred_color_scheme")),
495            app_storage_get_string: std::mem::transmute(sym(h, c"swiftui_app_storage_get_string")),
496            app_storage_set_string: std::mem::transmute(sym(h, c"swiftui_app_storage_set_string")),
497            app_storage_get_int: std::mem::transmute(sym(h, c"swiftui_app_storage_get_int")),
498            app_storage_set_int: std::mem::transmute(sym(h, c"swiftui_app_storage_set_int")),
499            app_storage_get_bool: std::mem::transmute(sym(h, c"swiftui_app_storage_get_bool")),
500            app_storage_set_bool: std::mem::transmute(sym(h, c"swiftui_app_storage_set_bool")),
501            navigation_stack: std::mem::transmute(sym(h, c"swiftui_navigation_stack")),
502            navigation_link: std::mem::transmute(sym(h, c"swiftui_navigation_link")),
503            on_change_int: std::mem::transmute(sym(h, c"swiftui_on_change_int")),
504            container_relative_frame: std::mem::transmute(sym(
505                h,
506                c"swiftui_container_relative_frame",
507            )),
508            canvas_commands: std::mem::transmute(sym(h, c"swiftui_canvas_commands")),
509            phase_animation: std::mem::transmute(sym(h, c"swiftui_phase_animation")),
510            phase_animation_scale: std::mem::transmute(sym(h, c"swiftui_phase_animation_scale")),
511            animation_bezier: std::mem::transmute(sym(h, c"swiftui_animation_bezier")),
512            keyframe_animation: std::mem::transmute(sym(h, c"swiftui_keyframe_animation")),
513            scroll_reader_create: std::mem::transmute(sym(h, c"swiftui_scroll_reader_create")),
514            scroll_to: std::mem::transmute(sym(h, c"swiftui_scroll_to")),
515            focus_model_create: std::mem::transmute(sym(h, c"swiftui_focus_model_create")),
516            focus_model_set: std::mem::transmute(sym(h, c"swiftui_focus_model_set")),
517            focus_model_clear: std::mem::transmute(sym(h, c"swiftui_focus_model_clear")),
518            focusable_textfield: std::mem::transmute(sym(h, c"swiftui_focusable_textfield")),
519            async_image: std::mem::transmute(sym(h, c"swiftui_async_image")),
520            color_picker_bound: std::mem::transmute(sym(h, c"swiftui_color_picker_bound")),
521            date_picker_bound: std::mem::transmute(sym(h, c"swiftui_date_picker_bound")),
522            empty_view: std::mem::transmute(sym(h, c"swiftui_empty_view")),
523            lazy_hgrid: std::mem::transmute(sym(h, c"swiftui_lazy_hgrid")),
524            timer_start: std::mem::transmute(sym(h, c"swiftui_timer_start")),
525            timer_stop: std::mem::transmute(sym(h, c"swiftui_timer_stop")),
526            symbol_effect_bounce: std::mem::transmute(sym(h, c"swiftui_symbol_effect_bounce")),
527            symbol_effect_pulse: std::mem::transmute(sym(h, c"swiftui_symbol_effect_pulse")),
528            symbol_effect_variable_color: std::mem::transmute(sym(
529                h,
530                c"swiftui_symbol_effect_variable_color",
531            )),
532            animation_duration: std::mem::transmute(sym(h, c"swiftui_animation_duration")),
533            animation_spring_params: std::mem::transmute(sym(
534                h,
535                c"swiftui_animation_spring_params",
536            )),
537            transition: std::mem::transmute(sym(h, c"swiftui_transition")),
538            on_drag: std::mem::transmute(sym(h, c"swiftui_on_drag")),
539            on_magnify: std::mem::transmute(sym(h, c"swiftui_on_magnify")),
540            on_rotate: std::mem::transmute(sym(h, c"swiftui_on_rotate")),
541            geometry_reader: std::mem::transmute(sym(h, c"swiftui_geometry_reader")),
542            scroll_view_reader: std::mem::transmute(sym(h, c"swiftui_scroll_view_reader")),
543            scrollable_id: std::mem::transmute(sym(h, c"swiftui_scrollable_id")),
544            timeline_view: std::mem::transmute(sym(h, c"swiftui_timeline_view")),
545            with_animation: std::mem::transmute(sym(h, c"swiftui_with_animation")),
546            matched_geometry: std::mem::transmute(sym(h, c"swiftui_matched_geometry")),
547            task: std::mem::transmute(sym(h, c"swiftui_task")),
548            photos_picker: std::mem::transmute(sym(h, c"swiftui_photos_picker")),
549            map: std::mem::transmute(sym(h, c"swiftui_map")),
550            video_player: std::mem::transmute(sym(h, c"swiftui_video_player")),
551            searchable: std::mem::transmute(sym(h, c"swiftui_searchable")),
552            refreshable: std::mem::transmute(sym(h, c"swiftui_refreshable")),
553            swipe_actions_delete: std::mem::transmute(sym(h, c"swiftui_swipe_actions_delete")),
554            swipe_actions_custom: std::mem::transmute(sym(h, c"swiftui_swipe_actions_custom")),
555            release: std::mem::transmute(sym(h, c"swiftui_release")),
556            retain: std::mem::transmute(sym(h, c"swiftui_retain")),
557            show_window: std::mem::transmute(sym(h, c"swiftui_show_window")),
558            snapshot: if snap_ptr.is_null() {
559                None
560            } else {
561                Some(std::mem::transmute(snap_ptr))
562            },
563            snapshot_free: if free_ptr.is_null() {
564                None
565            } else {
566                Some(std::mem::transmute(free_ptr))
567            },
568            compare_png: if cmp_ptr.is_null() {
569                None
570            } else {
571                Some(std::mem::transmute(cmp_ptr))
572            },
573        })
574    }
575}