├── .github ├── FUNDING.yml └── workflows │ └── test.yml ├── .gitignore ├── LICENSE ├── Makefile ├── README.md ├── darwinkit.png ├── dispatch ├── dispatch.go ├── queue.go └── queue.m ├── docs ├── bindings.md ├── generation.md └── memorymanagement.md ├── generate ├── class.go ├── codegen │ ├── aliasinfo.go │ ├── codegen.go │ ├── codewriter.go │ ├── filewriter.go │ ├── gen_class.go │ ├── gen_method.go │ ├── gen_param.go │ ├── gen_property.go │ ├── gen_protocol.go │ └── modulewriter.go ├── declparse │ ├── ast.go │ ├── ast_enum.go │ ├── ast_strings.go │ ├── ast_test.go │ ├── declparse_test.go │ ├── keywords │ │ └── init.go │ ├── lexer │ │ ├── buffer.go │ │ ├── scanner.go │ │ ├── scanner_test.go │ │ ├── token.go │ │ ├── util.go │ │ └── util_reader.go │ ├── parser.go │ ├── parser_enum.go │ ├── parser_function.go │ ├── parser_functype.go │ ├── parser_interface.go │ ├── parser_method.go │ ├── parser_property.go │ ├── parser_protocol.go │ ├── parser_struct.go │ ├── parser_test.go │ ├── parser_type.go │ └── parser_variable.go ├── enums.go ├── generator.go ├── members.go ├── modules │ ├── enums.go │ ├── enums │ │ ├── README.md │ │ └── macos │ │ │ ├── appkit │ │ │ ├── appkit_arm64 │ │ │ ├── audiotoolbox │ │ │ ├── avfaudio │ │ │ ├── avfoundation │ │ │ ├── avkit │ │ │ ├── cloudkit │ │ │ ├── contacts │ │ │ ├── contactsui │ │ │ ├── coreaudio │ │ │ ├── coreaudiokit │ │ │ ├── coreaudiotypes │ │ │ ├── coredata │ │ │ ├── corefoundation │ │ │ ├── coregraphics │ │ │ ├── coreimage │ │ │ ├── corelocation │ │ │ ├── coremedia │ │ │ ├── coremediaio │ │ │ ├── coremidi │ │ │ ├── coreml │ │ │ ├── corespotlight │ │ │ ├── corevideo │ │ │ ├── fileprovider │ │ │ ├── foundation │ │ │ ├── gameplaykit │ │ │ ├── imageio │ │ │ ├── iobluetooth │ │ │ ├── iosurface │ │ │ ├── mediaplayer │ │ │ ├── metal │ │ │ ├── metalkit │ │ │ ├── modelio │ │ │ ├── mps │ │ │ ├── mpsgraph │ │ │ ├── quartz │ │ │ ├── quartzcore │ │ │ ├── scenekit │ │ │ ├── securityinterface │ │ │ ├── spritekit │ │ │ ├── sysconfig │ │ │ ├── uniformtypeidentifiers │ │ │ ├── uti │ │ │ ├── vision │ │ │ └── webkit │ └── modules.go ├── protocol.go ├── symbols.go ├── tools │ ├── clobbergen.go │ ├── constant.go │ ├── declcheck.go │ ├── enumexport.go │ ├── genmod.go │ ├── imports.sh │ ├── initmod.go │ ├── lookup.go │ ├── regen.sh │ ├── stats.sh │ ├── structs.go │ └── type.go ├── types.go ├── typing │ ├── alias_type.go │ ├── array_type.go │ ├── block_type.go │ ├── class_type.go │ ├── data_type.go │ ├── dict_type.go │ ├── dispatch_type.go │ ├── id_type.go │ ├── instance_type.go │ ├── kernel_type.go │ ├── pointer_ref_type.go │ ├── pointer_type.go │ ├── primitive_type.go │ ├── protocol_type.go │ ├── ref_type.go │ ├── selector_type.go │ ├── string_type.go │ ├── struct_type.go │ ├── type.go │ ├── void_pointer_type.go │ └── void_type.go └── utils.go ├── go.mod ├── go.sum ├── helper ├── action │ ├── action_handler.go │ └── action_handler.m ├── layout │ └── layout.go └── widgets │ ├── dialog.go │ └── form_view.go ├── internal ├── assert │ └── assert.go ├── set │ └── set.go └── stringx │ └── string_utils.go ├── kernel └── types.go ├── macos ├── _examples │ ├── form │ │ └── main.go │ ├── helloworld │ │ └── main.go │ ├── layout │ │ └── main.go │ ├── menu │ │ └── main.go │ ├── notification │ │ └── main.go │ ├── screenlock │ │ └── main.go │ ├── subclass │ │ └── main.go │ ├── tableview │ │ ├── main.go │ │ └── table_view_data_source_delegate.go │ ├── tabview │ │ └── main.go │ ├── webshot │ │ ├── main.go │ │ └── webshot.png │ ├── webview │ │ ├── assets │ │ │ ├── index.html │ │ │ └── main.css │ │ └── main.go │ ├── widgets │ │ └── main.go │ └── workspace │ │ └── main.go ├── _wip │ ├── audiotoolbox │ │ ├── audiotoolbox.go │ │ ├── audiotoolbox_custom.go │ │ ├── audiotoolbox_structs.go │ │ └── audiotoolbox_test.go │ ├── avfaudio │ │ ├── avfaudio.go │ │ ├── avfaudio_custom.go │ │ ├── avfaudio_structs.go │ │ └── avfaudio_test.go │ ├── coreaudiokit │ │ ├── coreaudiokit.go │ │ ├── coreaudiokit_custom.go │ │ └── coreaudiokit_test.go │ ├── gameplaykit │ │ ├── gameplaykit.go │ │ ├── gameplaykit_custom.go │ │ ├── gameplaykit_structs.go │ │ └── gameplaykit_test.go │ ├── iobluetooth │ │ ├── iobluetooth.go │ │ ├── iobluetooth_custom.go │ │ ├── iobluetooth_structs.go │ │ └── iobluetooth_test.go │ ├── metalkit │ │ ├── metalkit.go │ │ ├── metalkit_custom.go │ │ └── metalkit_test.go │ ├── modelio │ │ ├── modelio.go │ │ ├── modelio_custom.go │ │ ├── modelio_structs.go │ │ └── modelio_test.go │ ├── scenekit │ │ ├── scenekit.go │ │ ├── scenekit_custom.go │ │ ├── scenekit_structs.go │ │ └── scenekit_test.go │ └── spritekit │ │ ├── spritekit.go │ │ ├── spritekit_custom.go │ │ └── spritekit_test.go ├── appkit │ ├── accessibility_button_protocol.gen.go │ ├── accessibility_check_box_protocol.gen.go │ ├── accessibility_contains_transient_ui_protocol.gen.go │ ├── accessibility_custom_action.gen.go │ ├── accessibility_custom_rotor.gen.go │ ├── accessibility_custom_rotor_item_result.gen.go │ ├── accessibility_custom_rotor_item_search_delegate.gen.go │ ├── accessibility_custom_rotor_search_parameters.gen.go │ ├── accessibility_element.gen.go │ ├── accessibility_element_loading_protocol.gen.go │ ├── accessibility_element_protocol.gen.go │ ├── accessibility_group_protocol.gen.go │ ├── accessibility_image_protocol.gen.go │ ├── accessibility_layout_area_protocol.gen.go │ ├── accessibility_layout_item_protocol.gen.go │ ├── accessibility_list_protocol.gen.go │ ├── accessibility_navigable_static_text_protocol.gen.go │ ├── accessibility_outline_protocol.gen.go │ ├── accessibility_progress_indicator_protocol.gen.go │ ├── accessibility_protocol.gen.go │ ├── accessibility_radio_button_protocol.gen.go │ ├── accessibility_row_protocol.gen.go │ ├── accessibility_slider_protocol.gen.go │ ├── accessibility_static_text_protocol.gen.go │ ├── accessibility_stepper_protocol.gen.go │ ├── accessibility_switch_protocol.gen.go │ ├── accessibility_table_protocol.gen.go │ ├── action_cell.gen.go │ ├── alert.gen.go │ ├── alert_delegate.gen.go │ ├── aliastypes.gen.go │ ├── alignment_feedback_filter.gen.go │ ├── alignment_feedback_token_protocol.gen.go │ ├── animatable_property_container_protocol.gen.go │ ├── animation.gen.go │ ├── animation_context.gen.go │ ├── animation_delegate.gen.go │ ├── appearance.gen.go │ ├── appearance_customization_protocol.gen.go │ ├── appkit.go │ ├── appkit_custom.go │ ├── appkit_structs.go │ ├── appkit_test.go │ ├── application.gen.go │ ├── application_delegate.gen.go │ ├── array_controller.gen.go │ ├── ats_typesetter.gen.go │ ├── bezier_path.gen.go │ ├── binding_selection_marker.gen.go │ ├── bitmap_image_rep.gen.go │ ├── box.gen.go │ ├── browser.gen.go │ ├── browser_cell.gen.go │ ├── browser_delegate.gen.go │ ├── button.gen.go │ ├── button_cell.gen.go │ ├── button_touch_bar_item.gen.go │ ├── cached_image_rep.gen.go │ ├── candidate_list_touch_bar_item.gen.go │ ├── candidate_list_touch_bar_item_delegate.gen.go │ ├── cell.gen.go │ ├── change_spelling_protocol.gen.go │ ├── ci_image_rep.gen.go │ ├── click_gesture_recognizer.gen.go │ ├── clip_view.gen.go │ ├── cloud_sharing_service_delegate.gen.go │ ├── cloud_sharing_validation_protocol.gen.go │ ├── collection_layout_anchor.gen.go │ ├── collection_layout_boundary_supplementary_item.gen.go │ ├── collection_layout_container_protocol.gen.go │ ├── collection_layout_decoration_item.gen.go │ ├── collection_layout_dimension.gen.go │ ├── collection_layout_edge_spacing.gen.go │ ├── collection_layout_environment_protocol.gen.go │ ├── collection_layout_group.gen.go │ ├── collection_layout_group_custom_item.gen.go │ ├── collection_layout_item.gen.go │ ├── collection_layout_section.gen.go │ ├── collection_layout_size.gen.go │ ├── collection_layout_spacing.gen.go │ ├── collection_layout_supplementary_item.gen.go │ ├── collection_layout_visible_item_protocol.gen.go │ ├── collection_view.gen.go │ ├── collection_view_compositional_layout.gen.go │ ├── collection_view_compositional_layout_configuration.gen.go │ ├── collection_view_data_source_protocol.gen.go │ ├── collection_view_delegate.gen.go │ ├── collection_view_delegate_flow_layout.gen.go │ ├── collection_view_diffable_data_source.gen.go │ ├── collection_view_element_protocol.gen.go │ ├── collection_view_flow_layout.gen.go │ ├── collection_view_flow_layout_invalidation_context.gen.go │ ├── collection_view_grid_layout.gen.go │ ├── collection_view_item.gen.go │ ├── collection_view_layout.gen.go │ ├── collection_view_layout_attributes.gen.go │ ├── collection_view_layout_invalidation_context.gen.go │ ├── collection_view_prefetching_protocol.gen.go │ ├── collection_view_section_header_view_protocol.gen.go │ ├── collection_view_transition_layout.gen.go │ ├── collection_view_update_item.gen.go │ ├── color.gen.go │ ├── color_changing_protocol.gen.go │ ├── color_list.gen.go │ ├── color_panel.gen.go │ ├── color_picker.gen.go │ ├── color_picker_touch_bar_item.gen.go │ ├── color_picking_custom_protocol.gen.go │ ├── color_picking_default_protocol.gen.go │ ├── color_sampler.gen.go │ ├── color_space.gen.go │ ├── color_well.gen.go │ ├── combo_box.gen.go │ ├── combo_box_cell.gen.go │ ├── combo_box_cell_data_source_protocol.gen.go │ ├── combo_box_data_source_protocol.gen.go │ ├── combo_box_delegate.gen.go │ ├── control.gen.go │ ├── control_text_editing_delegate.gen.go │ ├── controller.gen.go │ ├── cursor.gen.go │ ├── custom_image_rep.gen.go │ ├── custom_touch_bar_item.gen.go │ ├── data_asset.gen.go │ ├── date_picker.gen.go │ ├── date_picker_cell.gen.go │ ├── date_picker_cell_delegate.gen.go │ ├── dictionary_controller.gen.go │ ├── dictionary_controller_key_value_pair.gen.go │ ├── diffable_data_source_snapshot.gen.go │ ├── doc.gen.go │ ├── dock_tile.gen.go │ ├── dock_tile_plug_in_protocol.gen.go │ ├── document.gen.go │ ├── document_controller.gen.go │ ├── dragging_destination_protocol.gen.go │ ├── dragging_image_component.gen.go │ ├── dragging_info_protocol.gen.go │ ├── dragging_item.gen.go │ ├── dragging_session.gen.go │ ├── dragging_source_protocol.gen.go │ ├── drawer.gen.go │ ├── drawer_delegate.gen.go │ ├── editor_protocol.gen.go │ ├── editor_registration_protocol.gen.go │ ├── enumtypes.gen.go │ ├── enumtypes_amd64.gen.go │ ├── enumtypes_arm64.gen.go │ ├── eps_image_rep.gen.go │ ├── event.gen.go │ ├── file_promise_provider.gen.go │ ├── file_promise_provider_delegate.gen.go │ ├── file_promise_receiver.gen.go │ ├── font.gen.go │ ├── font_asset_request.gen.go │ ├── font_changing_protocol.gen.go │ ├── font_collection.gen.go │ ├── font_descriptor.gen.go │ ├── font_manager.gen.go │ ├── font_panel.gen.go │ ├── form.gen.go │ ├── form_cell.gen.go │ ├── gesture_recognizer.gen.go │ ├── gesture_recognizer_delegate.gen.go │ ├── glyph_generator.gen.go │ ├── glyph_info.gen.go │ ├── glyph_storage_protocol.gen.go │ ├── gradient.gen.go │ ├── graphics_context.gen.go │ ├── grid_cell.gen.go │ ├── grid_column.gen.go │ ├── grid_row.gen.go │ ├── grid_view.gen.go │ ├── group_touch_bar_item.gen.go │ ├── haptic_feedback_manager.gen.go │ ├── haptic_feedback_performer_protocol.gen.go │ ├── help_manager.gen.go │ ├── ignore_misspelled_words_protocol.gen.go │ ├── image.gen.go │ ├── image_cell.gen.go │ ├── image_delegate.gen.go │ ├── image_rep.gen.go │ ├── image_symbol_configuration.gen.go │ ├── image_view.gen.go │ ├── input_manager.gen.go │ ├── input_server.gen.go │ ├── input_server_mouse_tracker_protocol.gen.go │ ├── input_service_provider_protocol.gen.go │ ├── layout_anchor.gen.go │ ├── layout_constraint.gen.go │ ├── layout_dimension.gen.go │ ├── layout_guide.gen.go │ ├── layout_manager.gen.go │ ├── layout_manager_delegate.gen.go │ ├── layout_x_axis_anchor.gen.go │ ├── layout_y_axis_anchor.gen.go │ ├── level_indicator.gen.go │ ├── level_indicator_cell.gen.go │ ├── magnification_gesture_recognizer.gen.go │ ├── matrix.gen.go │ ├── matrix_delegate.gen.go │ ├── media_library_browser_controller.gen.go │ ├── menu.gen.go │ ├── menu_delegate.gen.go │ ├── menu_item.gen.go │ ├── menu_item_cell.gen.go │ ├── menu_item_validation_protocol.gen.go │ ├── menu_toolbar_item.gen.go │ ├── mutable_font_collection.gen.go │ ├── mutable_paragraph_style.gen.go │ ├── nib.gen.go │ ├── nib_connector.gen.go │ ├── nib_control_connector.gen.go │ ├── nib_outlet_connector.gen.go │ ├── object_controller.gen.go │ ├── open_gl_context.gen.go │ ├── open_gl_layer.gen.go │ ├── open_gl_pixel_buffer.gen.go │ ├── open_gl_pixel_format.gen.go │ ├── open_gl_view.gen.go │ ├── open_panel.gen.go │ ├── open_save_panel_delegate.gen.go │ ├── outline_view.gen.go │ ├── outline_view_data_source_protocol.gen.go │ ├── outline_view_delegate.gen.go │ ├── page_controller.gen.go │ ├── page_controller_delegate.gen.go │ ├── page_layout.gen.go │ ├── pan_gesture_recognizer.gen.go │ ├── panel.gen.go │ ├── paragraph_style.gen.go │ ├── pasteboard.gen.go │ ├── pasteboard_item.gen.go │ ├── pasteboard_item_data_provider_protocol.gen.go │ ├── pasteboard_reading_protocol.gen.go │ ├── pasteboard_type_owner_protocol.gen.go │ ├── pasteboard_writing_protocol.gen.go │ ├── path_cell.gen.go │ ├── path_cell_delegate.gen.go │ ├── path_component_cell.gen.go │ ├── path_control.gen.go │ ├── path_control_delegate.gen.go │ ├── path_control_item.gen.go │ ├── pdf_image_rep.gen.go │ ├── pdf_info.gen.go │ ├── pdf_panel.gen.go │ ├── persistent_document.gen.go │ ├── picker_touch_bar_item.gen.go │ ├── pict_image_rep.gen.go │ ├── pop_up_button.gen.go │ ├── pop_up_button_cell.gen.go │ ├── popover.gen.go │ ├── popover_delegate.gen.go │ ├── popover_touch_bar_item.gen.go │ ├── predicate_editor.gen.go │ ├── predicate_editor_row_template.gen.go │ ├── press_gesture_recognizer.gen.go │ ├── pressure_configuration.gen.go │ ├── print_info.gen.go │ ├── print_operation.gen.go │ ├── print_panel.gen.go │ ├── print_panel_accessorizing_protocol.gen.go │ ├── printer.gen.go │ ├── progress_indicator.gen.go │ ├── protocols.gen.m │ ├── responder.gen.go │ ├── rotation_gesture_recognizer.gen.go │ ├── rule_editor.gen.go │ ├── rule_editor_delegate.gen.go │ ├── ruler_marker.gen.go │ ├── ruler_view.gen.go │ ├── running_application.gen.go │ ├── save_panel.gen.go │ ├── screen.gen.go │ ├── scroll_view.gen.go │ ├── scroller.gen.go │ ├── scrubber.gen.go │ ├── scrubber_arranged_view.gen.go │ ├── scrubber_data_source_protocol.gen.go │ ├── scrubber_delegate.gen.go │ ├── scrubber_flow_layout.gen.go │ ├── scrubber_flow_layout_delegate.gen.go │ ├── scrubber_image_item_view.gen.go │ ├── scrubber_item_view.gen.go │ ├── scrubber_layout.gen.go │ ├── scrubber_layout_attributes.gen.go │ ├── scrubber_proportional_layout.gen.go │ ├── scrubber_selection_style.gen.go │ ├── scrubber_selection_view.gen.go │ ├── scrubber_text_item_view.gen.go │ ├── search_field.gen.go │ ├── search_field_cell.gen.go │ ├── search_field_delegate.gen.go │ ├── search_toolbar_item.gen.go │ ├── secure_text_field.gen.go │ ├── secure_text_field_cell.gen.go │ ├── segmented_cell.gen.go │ ├── segmented_control.gen.go │ ├── segue_performing_protocol.gen.go │ ├── services_menu_requestor_protocol.gen.go │ ├── shadow.gen.go │ ├── sharing_service.gen.go │ ├── sharing_service_delegate.gen.go │ ├── sharing_service_picker.gen.go │ ├── sharing_service_picker_delegate.gen.go │ ├── sharing_service_picker_toolbar_item.gen.go │ ├── sharing_service_picker_toolbar_item_delegate.gen.go │ ├── sharing_service_picker_touch_bar_item.gen.go │ ├── sharing_service_picker_touch_bar_item_delegate.gen.go │ ├── slider.gen.go │ ├── slider_accessory.gen.go │ ├── slider_accessory_behavior.gen.go │ ├── slider_cell.gen.go │ ├── slider_touch_bar_item.gen.go │ ├── sound.gen.go │ ├── sound_delegate.gen.go │ ├── speech_recognizer.gen.go │ ├── speech_recognizer_delegate.gen.go │ ├── speech_synthesizer.gen.go │ ├── speech_synthesizer_delegate.gen.go │ ├── spell_checker.gen.go │ ├── split_view.gen.go │ ├── split_view_controller.gen.go │ ├── split_view_delegate.gen.go │ ├── split_view_item.gen.go │ ├── spring_loading_destination_protocol.gen.go │ ├── stack_view.gen.go │ ├── stack_view_delegate.gen.go │ ├── standard_key_binding_responding_protocol.gen.go │ ├── status_bar.gen.go │ ├── status_bar_button.gen.go │ ├── status_item.gen.go │ ├── stepper.gen.go │ ├── stepper_cell.gen.go │ ├── stepper_touch_bar_item.gen.go │ ├── storyboard.gen.go │ ├── storyboard_segue.gen.go │ ├── string_drawing_context.gen.go │ ├── switch.gen.go │ ├── tab_view.gen.go │ ├── tab_view_controller.gen.go │ ├── tab_view_delegate.gen.go │ ├── tab_view_item.gen.go │ ├── table_cell_view.gen.go │ ├── table_column.gen.go │ ├── table_header_cell.gen.go │ ├── table_header_view.gen.go │ ├── table_row_view.gen.go │ ├── table_view.gen.go │ ├── table_view_data_source_protocol.gen.go │ ├── table_view_delegate.gen.go │ ├── table_view_diffable_data_source.gen.go │ ├── table_view_row_action.gen.go │ ├── text.gen.go │ ├── text_alternatives.gen.go │ ├── text_attachment.gen.go │ ├── text_attachment_cell.gen.go │ ├── text_attachment_cell_protocol.gen.go │ ├── text_attachment_container_protocol.gen.go │ ├── text_attachment_layout_protocol.gen.go │ ├── text_attachment_view_provider.gen.go │ ├── text_block.gen.go │ ├── text_checking_client_protocol.gen.go │ ├── text_checking_controller.gen.go │ ├── text_container.gen.go │ ├── text_content_manager.gen.go │ ├── text_content_manager_delegate.gen.go │ ├── text_content_protocol.gen.go │ ├── text_content_storage.gen.go │ ├── text_content_storage_delegate.gen.go │ ├── text_delegate.gen.go │ ├── text_element.gen.go │ ├── text_element_provider_protocol.gen.go │ ├── text_field.gen.go │ ├── text_field_cell.gen.go │ ├── text_field_delegate.gen.go │ ├── text_finder.gen.go │ ├── text_finder_bar_container_protocol.gen.go │ ├── text_finder_client_protocol.gen.go │ ├── text_input_client_protocol.gen.go │ ├── text_input_context.gen.go │ ├── text_input_protocol.gen.go │ ├── text_input_traits_protocol.gen.go │ ├── text_layout_fragment.gen.go │ ├── text_layout_manager.gen.go │ ├── text_layout_manager_delegate.gen.go │ ├── text_layout_orientation_provider_protocol.gen.go │ ├── text_line_fragment.gen.go │ ├── text_list.gen.go │ ├── text_location_protocol.gen.go │ ├── text_paragraph.gen.go │ ├── text_range.gen.go │ ├── text_selection.gen.go │ ├── text_selection_data_source_protocol.gen.go │ ├── text_selection_navigation.gen.go │ ├── text_storage.gen.go │ ├── text_storage_delegate.gen.go │ ├── text_storage_observing_protocol.gen.go │ ├── text_tab.gen.go │ ├── text_table.gen.go │ ├── text_table_block.gen.go │ ├── text_view.gen.go │ ├── text_view_delegate.gen.go │ ├── text_viewport_layout_controller.gen.go │ ├── text_viewport_layout_controller_delegate.gen.go │ ├── tint_configuration.gen.go │ ├── titlebar_accessory_view_controller.gen.go │ ├── token_field.gen.go │ ├── token_field_cell.gen.go │ ├── token_field_cell_delegate.gen.go │ ├── token_field_delegate.gen.go │ ├── toolbar.gen.go │ ├── toolbar_delegate.gen.go │ ├── toolbar_item.gen.go │ ├── toolbar_item_group.gen.go │ ├── toolbar_item_validation_protocol.gen.go │ ├── touch.gen.go │ ├── touch_bar.gen.go │ ├── touch_bar_delegate.gen.go │ ├── touch_bar_item.gen.go │ ├── touch_bar_provider_protocol.gen.go │ ├── tracking_area.gen.go │ ├── tracking_separator_toolbar_item.gen.go │ ├── tree_controller.gen.go │ ├── tree_node.gen.go │ ├── typesetter.gen.go │ ├── user_activity_restoring_protocol.gen.go │ ├── user_defaults_controller.gen.go │ ├── user_interface_compression_options.gen.go │ ├── user_interface_compression_protocol.gen.go │ ├── user_interface_item_identification_protocol.gen.go │ ├── user_interface_item_searching_protocol.gen.go │ ├── user_interface_validations_protocol.gen.go │ ├── validated_user_interface_item_protocol.gen.go │ ├── view.gen.go │ ├── view_animation.gen.go │ ├── view_controller.gen.go │ ├── view_controller_presentation_animator_protocol.gen.go │ ├── view_layer_content_scale_delegate.gen.go │ ├── view_tool_tip_owner_protocol.gen.go │ ├── visual_effect_view.gen.go │ ├── window.gen.go │ ├── window_controller.gen.go │ ├── window_delegate.gen.go │ ├── window_restoration_protocol.gen.go │ ├── window_tab.gen.go │ ├── window_tab_group.gen.go │ ├── workspace.gen.go │ ├── workspace_authorization.gen.go │ └── workspace_open_configuration.gen.go ├── avfoundation │ ├── aggregate_asset_download_task.gen.go │ ├── aliastypes.gen.go │ ├── asset.gen.go │ ├── asset_cache.gen.go │ ├── asset_download_configuration.gen.go │ ├── asset_download_content_configuration.gen.go │ ├── asset_download_delegate.gen.go │ ├── asset_download_storage_management_policy.gen.go │ ├── asset_download_storage_manager.gen.go │ ├── asset_download_task.gen.go │ ├── asset_download_url_session.gen.go │ ├── asset_export_session.gen.go │ ├── asset_image_generator.gen.go │ ├── asset_reader.gen.go │ ├── asset_reader_audio_mix_output.gen.go │ ├── asset_reader_caption_validation_handling_protocol.gen.go │ ├── asset_reader_output.gen.go │ ├── asset_reader_output_caption_adaptor.gen.go │ ├── asset_reader_output_metadata_adaptor.gen.go │ ├── asset_reader_sample_reference_output.gen.go │ ├── asset_reader_track_output.gen.go │ ├── asset_reader_video_composition_output.gen.go │ ├── asset_resource_loader.gen.go │ ├── asset_resource_loader_delegate.gen.go │ ├── asset_resource_loading_content_information_request.gen.go │ ├── asset_resource_loading_data_request.gen.go │ ├── asset_resource_loading_request.gen.go │ ├── asset_resource_loading_requestor.gen.go │ ├── asset_resource_renewal_request.gen.go │ ├── asset_segment_report.gen.go │ ├── asset_segment_report_sample_information.gen.go │ ├── asset_segment_track_report.gen.go │ ├── asset_track.gen.go │ ├── asset_track_group.gen.go │ ├── asset_track_segment.gen.go │ ├── asset_variant.gen.go │ ├── asset_variant_audio_attributes.gen.go │ ├── asset_variant_audio_rendition_specific_attributes.gen.go │ ├── asset_variant_qualifier.gen.go │ ├── asset_variant_video_attributes.gen.go │ ├── asset_writer.gen.go │ ├── asset_writer_delegate.gen.go │ ├── asset_writer_input.gen.go │ ├── asset_writer_input_caption_adaptor.gen.go │ ├── asset_writer_input_group.gen.go │ ├── asset_writer_input_metadata_adaptor.gen.go │ ├── asset_writer_input_pass_description.gen.go │ ├── asset_writer_input_pixel_buffer_adaptor.gen.go │ ├── asynchronous_ci_image_filtering_request.gen.go │ ├── asynchronous_key_value_loading_protocol.gen.go │ ├── asynchronous_video_composition_request.gen.go │ ├── audio_mix.gen.go │ ├── audio_mix_input_parameters.gen.go │ ├── avfoundation.go │ ├── avfoundation_structs.go │ ├── avfoundation_test.go │ ├── camera_calibration_data.gen.go │ ├── caption.gen.go │ ├── caption_conversion_adjustment.gen.go │ ├── caption_conversion_time_range_adjustment.gen.go │ ├── caption_conversion_validator.gen.go │ ├── caption_conversion_warning.gen.go │ ├── caption_format_conformer.gen.go │ ├── caption_group.gen.go │ ├── caption_grouper.gen.go │ ├── caption_region.gen.go │ ├── caption_renderer.gen.go │ ├── caption_renderer_scene.gen.go │ ├── caption_ruby.gen.go │ ├── capture_audio_channel.gen.go │ ├── capture_audio_data_output.gen.go │ ├── capture_audio_data_output_sample_buffer_delegate.gen.go │ ├── capture_audio_file_output.gen.go │ ├── capture_audio_preview_output.gen.go │ ├── capture_connection.gen.go │ ├── capture_device.gen.go │ ├── capture_device_discovery_session.gen.go │ ├── capture_device_format.gen.go │ ├── capture_device_input.gen.go │ ├── capture_device_input_source.gen.go │ ├── capture_file_output.gen.go │ ├── capture_file_output_delegate.gen.go │ ├── capture_file_output_recording_delegate.gen.go │ ├── capture_input.gen.go │ ├── capture_input_port.gen.go │ ├── capture_movie_file_output.gen.go │ ├── capture_output.gen.go │ ├── capture_photo.gen.go │ ├── capture_photo_capture_delegate.gen.go │ ├── capture_photo_output.gen.go │ ├── capture_photo_settings.gen.go │ ├── capture_resolved_photo_settings.gen.go │ ├── capture_screen_input.gen.go │ ├── capture_session.gen.go │ ├── capture_still_image_output.gen.go │ ├── capture_video_data_output.gen.go │ ├── capture_video_data_output_sample_buffer_delegate.gen.go │ ├── capture_video_preview_layer.gen.go │ ├── composition.gen.go │ ├── composition_track.gen.go │ ├── composition_track_format_description_replacement.gen.go │ ├── composition_track_segment.gen.go │ ├── content_key.gen.go │ ├── content_key_recipient_protocol.gen.go │ ├── content_key_request.gen.go │ ├── content_key_response.gen.go │ ├── content_key_session.gen.go │ ├── content_key_session_delegate.gen.go │ ├── content_key_specifier.gen.go │ ├── coordinated_playback_participant.gen.go │ ├── coordinated_playback_suspension.gen.go │ ├── date_range_metadata_group.gen.go │ ├── delegating_playback_coordinator.gen.go │ ├── delegating_playback_coordinator_buffering_command.gen.go │ ├── delegating_playback_coordinator_pause_command.gen.go │ ├── delegating_playback_coordinator_play_command.gen.go │ ├── delegating_playback_coordinator_playback_control_command.gen.go │ ├── delegating_playback_coordinator_seek_command.gen.go │ ├── depth_data.gen.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── fragment_minding_protocol.gen.go │ ├── fragmented_asset.gen.go │ ├── fragmented_asset_minder.gen.go │ ├── fragmented_asset_track.gen.go │ ├── fragmented_movie.gen.go │ ├── fragmented_movie_minder.gen.go │ ├── fragmented_movie_track.gen.go │ ├── frame_rate_range.gen.go │ ├── media_data_storage.gen.go │ ├── media_selection.gen.go │ ├── media_selection_group.gen.go │ ├── media_selection_option.gen.go │ ├── metadata_body_object.gen.go │ ├── metadata_cat_body_object.gen.go │ ├── metadata_dog_body_object.gen.go │ ├── metadata_face_object.gen.go │ ├── metadata_group.gen.go │ ├── metadata_human_body_object.gen.go │ ├── metadata_item.gen.go │ ├── metadata_item_filter.gen.go │ ├── metadata_item_value_request.gen.go │ ├── metadata_machine_readable_code_object.gen.go │ ├── metadata_object.gen.go │ ├── metadata_salient_object.gen.go │ ├── movie.gen.go │ ├── movie_track.gen.go │ ├── mutable_asset_download_storage_management_policy.gen.go │ ├── mutable_audio_mix.gen.go │ ├── mutable_audio_mix_input_parameters.gen.go │ ├── mutable_caption.gen.go │ ├── mutable_caption_region.gen.go │ ├── mutable_composition.gen.go │ ├── mutable_composition_track.gen.go │ ├── mutable_date_range_metadata_group.gen.go │ ├── mutable_media_selection.gen.go │ ├── mutable_metadata_item.gen.go │ ├── mutable_movie.gen.go │ ├── mutable_movie_track.gen.go │ ├── mutable_timed_metadata_group.gen.go │ ├── mutable_video_composition.gen.go │ ├── mutable_video_composition_instruction.gen.go │ ├── mutable_video_composition_layer_instruction.gen.go │ ├── output_settings_assistant.gen.go │ ├── persistable_content_key_request.gen.go │ ├── playback_coordinator.gen.go │ ├── playback_coordinator_playback_control_delegate.gen.go │ ├── player.gen.go │ ├── player_interstitial_event.gen.go │ ├── player_interstitial_event_controller.gen.go │ ├── player_interstitial_event_monitor.gen.go │ ├── player_item.gen.go │ ├── player_item_access_log.gen.go │ ├── player_item_access_log_event.gen.go │ ├── player_item_error_log.gen.go │ ├── player_item_error_log_event.gen.go │ ├── player_item_legible_output.gen.go │ ├── player_item_legible_output_push_delegate.gen.go │ ├── player_item_media_data_collector.gen.go │ ├── player_item_metadata_collector.gen.go │ ├── player_item_metadata_collector_push_delegate.gen.go │ ├── player_item_metadata_output.gen.go │ ├── player_item_metadata_output_push_delegate.gen.go │ ├── player_item_output.gen.go │ ├── player_item_output_pull_delegate.gen.go │ ├── player_item_output_push_delegate.gen.go │ ├── player_item_track.gen.go │ ├── player_item_video_output.gen.go │ ├── player_layer.gen.go │ ├── player_looper.gen.go │ ├── player_media_selection_criteria.gen.go │ ├── player_playback_coordinator.gen.go │ ├── player_playback_coordinator_delegate.gen.go │ ├── portrait_effects_matte.gen.go │ ├── protocols.gen.m │ ├── queue_player.gen.go │ ├── queued_sample_buffer_rendering_protocol.gen.go │ ├── route_detector.gen.go │ ├── sample_buffer_audio_renderer.gen.go │ ├── sample_buffer_display_layer.gen.go │ ├── sample_buffer_generator.gen.go │ ├── sample_buffer_render_synchronizer.gen.go │ ├── sample_buffer_request.gen.go │ ├── sample_cursor.gen.go │ ├── semantic_segmentation_matte.gen.go │ ├── synchronized_layer.gen.go │ ├── text_style_rule.gen.go │ ├── timed_metadata_group.gen.go │ ├── url_asset.gen.go │ ├── video_compositing_protocol.gen.go │ ├── video_composition.gen.go │ ├── video_composition_core_animation_tool.gen.go │ ├── video_composition_instruction.gen.go │ ├── video_composition_instruction_protocol.gen.go │ ├── video_composition_layer_instruction.gen.go │ ├── video_composition_render_context.gen.go │ ├── video_composition_render_hint.gen.go │ └── video_composition_validation_handling_protocol.gen.go ├── avkit │ ├── avkit.go │ ├── avkit_test.go │ ├── capture_view.gen.go │ ├── capture_view_delegate.gen.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── picture_in_picture_controller.gen.go │ ├── picture_in_picture_controller_content_source.gen.go │ ├── picture_in_picture_controller_delegate.gen.go │ ├── picture_in_picture_sample_buffer_playback_delegate.gen.go │ ├── player_view.gen.go │ ├── player_view_delegate.gen.go │ ├── player_view_picture_in_picture_delegate.gen.go │ ├── protocols.gen.m │ ├── route_picker_view.gen.go │ └── route_picker_view_delegate.gen.go ├── cloudkit │ ├── accept_shares_operation.gen.go │ ├── aliastypes.gen.go │ ├── asset.gen.go │ ├── cloudkit.go │ ├── cloudkit_test.go │ ├── container.gen.go │ ├── database.gen.go │ ├── database_notification.gen.go │ ├── database_operation.gen.go │ ├── database_subscription.gen.go │ ├── discover_all_user_identities_operation.gen.go │ ├── discover_user_identities_operation.gen.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── fetch_database_changes_operation.gen.go │ ├── fetch_notification_changes_operation.gen.go │ ├── fetch_record_changes_operation.gen.go │ ├── fetch_record_zone_changes_configuration.gen.go │ ├── fetch_record_zone_changes_operation.gen.go │ ├── fetch_record_zone_changes_options.gen.go │ ├── fetch_record_zones_operation.gen.go │ ├── fetch_records_operation.gen.go │ ├── fetch_share_metadata_operation.gen.go │ ├── fetch_share_participants_operation.gen.go │ ├── fetch_subscriptions_operation.gen.go │ ├── fetch_web_auth_token_operation.gen.go │ ├── location_sort_descriptor.gen.go │ ├── mark_notifications_read_operation.gen.go │ ├── modify_badge_operation.gen.go │ ├── modify_record_zones_operation.gen.go │ ├── modify_records_operation.gen.go │ ├── modify_subscriptions_operation.gen.go │ ├── notification.gen.go │ ├── notification_id.gen.go │ ├── notification_info.gen.go │ ├── operation.gen.go │ ├── operation_configuration.gen.go │ ├── operation_group.gen.go │ ├── protocols.gen.m │ ├── query.gen.go │ ├── query_cursor.gen.go │ ├── query_notification.gen.go │ ├── query_operation.gen.go │ ├── query_subscription.gen.go │ ├── record.gen.go │ ├── record_id.gen.go │ ├── record_key_value_setting_protocol.gen.go │ ├── record_value_protocol.gen.go │ ├── record_zone.gen.go │ ├── record_zone_id.gen.go │ ├── record_zone_notification.gen.go │ ├── record_zone_subscription.gen.go │ ├── reference.gen.go │ ├── server_change_token.gen.go │ ├── share.gen.go │ ├── share_metadata.gen.go │ ├── share_participant.gen.go │ ├── subscription.gen.go │ ├── user_identity.gen.go │ └── user_identity_lookup_info.gen.go ├── contacts │ ├── change_history_add_contact_event.gen.go │ ├── change_history_add_group_event.gen.go │ ├── change_history_add_member_to_group_event.gen.go │ ├── change_history_add_subgroup_to_group_event.gen.go │ ├── change_history_delete_contact_event.gen.go │ ├── change_history_delete_group_event.gen.go │ ├── change_history_drop_everything_event.gen.go │ ├── change_history_event.gen.go │ ├── change_history_event_visitor_protocol.gen.go │ ├── change_history_fetch_request.gen.go │ ├── change_history_remove_member_from_group_event.gen.go │ ├── change_history_remove_subgroup_from_group_event.gen.go │ ├── change_history_update_contact_event.gen.go │ ├── change_history_update_group_event.gen.go │ ├── contact.gen.go │ ├── contact_fetch_request.gen.go │ ├── contact_formatter.gen.go │ ├── contact_property.gen.go │ ├── contact_relation.gen.go │ ├── contact_store.gen.go │ ├── contact_v_card_serialization.gen.go │ ├── contacts.go │ ├── contacts_test.go │ ├── contacts_user_defaults.gen.go │ ├── container.gen.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── fetch_request.gen.go │ ├── fetch_result.gen.go │ ├── group.gen.go │ ├── instant_message_address.gen.go │ ├── labeled_value.gen.go │ ├── mutable_contact.gen.go │ ├── mutable_group.gen.go │ ├── mutable_postal_address.gen.go │ ├── phone_number.gen.go │ ├── postal_address.gen.go │ ├── postal_address_formatter.gen.go │ ├── protocols.gen.m │ ├── save_request.gen.go │ └── social_profile.gen.go ├── contactsui │ ├── contact_picker.gen.go │ ├── contact_picker_delegate.gen.go │ ├── contact_view_controller.gen.go │ ├── contactsui.go │ ├── contactsui_test.go │ ├── doc.gen.go │ └── protocols.gen.m ├── coreaudio │ ├── aliastypes.gen.go │ ├── coreaudio.go │ ├── coreaudio_structs.go │ ├── coreaudio_test.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ └── protocols.gen.m ├── coreaudiotypes │ ├── coreaudiotypes.go │ ├── coreaudiotypes_structs.go │ ├── coreaudiotypes_test.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ └── protocols.gen.m ├── coredata │ ├── aliastypes.gen.go │ ├── asynchronous_fetch_request.gen.go │ ├── asynchronous_fetch_result.gen.go │ ├── atomic_store.gen.go │ ├── atomic_store_cache_node.gen.go │ ├── attribute_description.gen.go │ ├── batch_delete_request.gen.go │ ├── batch_delete_result.gen.go │ ├── batch_insert_request.gen.go │ ├── batch_insert_result.gen.go │ ├── batch_update_request.gen.go │ ├── batch_update_result.gen.go │ ├── constraint_conflict.gen.go │ ├── core_data_core_spotlight_delegate.gen.go │ ├── coredata.go │ ├── coredata_test.go │ ├── derived_attribute_description.gen.go │ ├── doc.gen.go │ ├── entity_description.gen.go │ ├── entity_mapping.gen.go │ ├── entity_migration_policy.gen.go │ ├── enumtypes.gen.go │ ├── expression_description.gen.go │ ├── fetch_index_description.gen.go │ ├── fetch_index_element_description.gen.go │ ├── fetch_request.gen.go │ ├── fetch_request_expression.gen.go │ ├── fetch_request_result_protocol.gen.go │ ├── fetched_property_description.gen.go │ ├── fetched_results_controller.gen.go │ ├── fetched_results_controller_delegate.gen.go │ ├── fetched_results_section_info_protocol.gen.go │ ├── incremental_store.gen.go │ ├── incremental_store_node.gen.go │ ├── managed_object.gen.go │ ├── managed_object_context.gen.go │ ├── managed_object_id.gen.go │ ├── managed_object_model.gen.go │ ├── mapping_model.gen.go │ ├── merge_conflict.gen.go │ ├── merge_policy.gen.go │ ├── migration_manager.gen.go │ ├── persistent_cloud_kit_container.gen.go │ ├── persistent_cloud_kit_container_event.gen.go │ ├── persistent_cloud_kit_container_event_request.gen.go │ ├── persistent_cloud_kit_container_event_result.gen.go │ ├── persistent_cloud_kit_container_options.gen.go │ ├── persistent_container.gen.go │ ├── persistent_history_change.gen.go │ ├── persistent_history_change_request.gen.go │ ├── persistent_history_result.gen.go │ ├── persistent_history_token.gen.go │ ├── persistent_history_transaction.gen.go │ ├── persistent_store.gen.go │ ├── persistent_store_asynchronous_result.gen.go │ ├── persistent_store_coordinator.gen.go │ ├── persistent_store_description.gen.go │ ├── persistent_store_request.gen.go │ ├── persistent_store_result.gen.go │ ├── property_description.gen.go │ ├── property_mapping.gen.go │ ├── protocols.gen.m │ ├── query_generation_token.gen.go │ ├── relationship_description.gen.go │ └── save_changes_request.gen.go ├── corefoundation │ ├── aliastypes.gen.go │ ├── corefoundation.go │ ├── corefoundation_custom.go │ ├── corefoundation_structs.go │ ├── corefoundation_test.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ └── protocols.gen.m ├── coregraphics │ ├── aliastypes.gen.go │ ├── coregraphics.go │ ├── coregraphics_custom.go │ ├── coregraphics_structs.go │ ├── coregraphics_test.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ └── protocols.gen.m ├── coreimage │ ├── accordion_fold_transition_protocol.gen.go │ ├── affine_clamp_protocol.gen.go │ ├── affine_tile_protocol.gen.go │ ├── aliastypes.gen.go │ ├── area_average_protocol.gen.go │ ├── area_histogram_protocol.gen.go │ ├── area_maximum_alpha_protocol.gen.go │ ├── area_maximum_protocol.gen.go │ ├── area_min_max_protocol.gen.go │ ├── area_min_max_red_protocol.gen.go │ ├── area_minimum_alpha_protocol.gen.go │ ├── area_minimum_protocol.gen.go │ ├── area_reduction_filter_protocol.gen.go │ ├── attributed_text_image_generator_protocol.gen.go │ ├── aztec_code_descriptor.gen.go │ ├── aztec_code_generator_protocol.gen.go │ ├── barcode_descriptor.gen.go │ ├── barcode_generator_protocol.gen.go │ ├── bars_swipe_transition_protocol.gen.go │ ├── bicubic_scale_transform_protocol.gen.go │ ├── blend_kernel.gen.go │ ├── blend_with_mask_protocol.gen.go │ ├── bloom_protocol.gen.go │ ├── bokeh_blur_protocol.gen.go │ ├── box_blur_protocol.gen.go │ ├── bump_distortion_linear_protocol.gen.go │ ├── bump_distortion_protocol.gen.go │ ├── checkerboard_generator_protocol.gen.go │ ├── circle_splash_distortion_protocol.gen.go │ ├── circular_screen_protocol.gen.go │ ├── circular_wrap_protocol.gen.go │ ├── cmyk_halftone_protocol.gen.go │ ├── code128_barcode_generator_protocol.gen.go │ ├── color.gen.go │ ├── color_absolute_difference_protocol.gen.go │ ├── color_clamp_protocol.gen.go │ ├── color_controls_protocol.gen.go │ ├── color_cross_polynomial_protocol.gen.go │ ├── color_cube_protocol.gen.go │ ├── color_cube_with_color_space_protocol.gen.go │ ├── color_cubes_mixed_with_mask_protocol.gen.go │ ├── color_curves_protocol.gen.go │ ├── color_invert_protocol.gen.go │ ├── color_kernel.gen.go │ ├── color_map_protocol.gen.go │ ├── color_matrix_protocol.gen.go │ ├── color_monochrome_protocol.gen.go │ ├── color_polynomial_protocol.gen.go │ ├── color_posterize_protocol.gen.go │ ├── color_threshold_otsu_protocol.gen.go │ ├── color_threshold_protocol.gen.go │ ├── column_average_protocol.gen.go │ ├── comic_effect_protocol.gen.go │ ├── composite_operation_protocol.gen.go │ ├── context.gen.go │ ├── convolution_protocol.gen.go │ ├── copy_machine_transition_protocol.gen.go │ ├── core_ml_model_protocol.gen.go │ ├── coreimage.go │ ├── coreimage_test.go │ ├── crystallize_protocol.gen.go │ ├── data_matrix_code_descriptor.gen.go │ ├── depth_of_field_protocol.gen.go │ ├── depth_to_disparity_protocol.gen.go │ ├── detector.gen.go │ ├── disc_blur_protocol.gen.go │ ├── disintegrate_with_mask_transition_protocol.gen.go │ ├── disparity_to_depth_protocol.gen.go │ ├── displacement_distortion_protocol.gen.go │ ├── dissolve_transition_protocol.gen.go │ ├── dither_protocol.gen.go │ ├── doc.gen.go │ ├── document_enhancer_protocol.gen.go │ ├── dot_screen_protocol.gen.go │ ├── droste_protocol.gen.go │ ├── edge_preserve_upsample_protocol.gen.go │ ├── edge_work_protocol.gen.go │ ├── edges_protocol.gen.go │ ├── eightfold_reflected_tile_protocol.gen.go │ ├── enumtypes.gen.go │ ├── exposure_adjust_protocol.gen.go │ ├── face_feature.gen.go │ ├── false_color_protocol.gen.go │ ├── feature.gen.go │ ├── filter.gen.go │ ├── filter_constructor_protocol.gen.go │ ├── filter_generator.gen.go │ ├── filter_protocol.gen.go │ ├── filter_shape.gen.go │ ├── flash_transition_protocol.gen.go │ ├── four_coordinate_geometry_filter_protocol.gen.go │ ├── fourfold_reflected_tile_protocol.gen.go │ ├── fourfold_rotated_tile_protocol.gen.go │ ├── fourfold_translated_tile_protocol.gen.go │ ├── gabor_gradients_protocol.gen.go │ ├── gamma_adjust_protocol.gen.go │ ├── gaussian_blur_protocol.gen.go │ ├── gaussian_gradient_protocol.gen.go │ ├── glass_distortion_protocol.gen.go │ ├── glass_lozenge_protocol.gen.go │ ├── glide_reflected_tile_protocol.gen.go │ ├── gloom_protocol.gen.go │ ├── hatched_screen_protocol.gen.go │ ├── height_field_from_mask_protocol.gen.go │ ├── hexagonal_pixellate_protocol.gen.go │ ├── highlight_shadow_adjust_protocol.gen.go │ ├── histogram_display_protocol.gen.go │ ├── hole_distortion_protocol.gen.go │ ├── hue_adjust_protocol.gen.go │ ├── hue_saturation_value_gradient_protocol.gen.go │ ├── image.gen.go │ ├── image_accumulator.gen.go │ ├── image_processor_input_protocol.gen.go │ ├── image_processor_kernel.gen.go │ ├── image_processor_output_protocol.gen.go │ ├── k_means_protocol.gen.go │ ├── kaleidoscope_protocol.gen.go │ ├── kernel.gen.go │ ├── keystone_correction_combined_protocol.gen.go │ ├── keystone_correction_horizontal_protocol.gen.go │ ├── keystone_correction_vertical_protocol.gen.go │ ├── lab_delta_e_protocol.gen.go │ ├── lanczos_scale_transform_protocol.gen.go │ ├── lenticular_halo_generator_protocol.gen.go │ ├── light_tunnel_protocol.gen.go │ ├── line_overlay_protocol.gen.go │ ├── line_screen_protocol.gen.go │ ├── linear_gradient_protocol.gen.go │ ├── linear_to_srgb_tone_curve_protocol.gen.go │ ├── mask_to_alpha_protocol.gen.go │ ├── masked_variable_blur_protocol.gen.go │ ├── maximum_component_protocol.gen.go │ ├── median_protocol.gen.go │ ├── mesh_generator_protocol.gen.go │ ├── minimum_component_protocol.gen.go │ ├── mix_protocol.gen.go │ ├── mod_transition_protocol.gen.go │ ├── morphology_gradient_protocol.gen.go │ ├── morphology_maximum_protocol.gen.go │ ├── morphology_minimum_protocol.gen.go │ ├── morphology_rectangle_maximum_protocol.gen.go │ ├── morphology_rectangle_minimum_protocol.gen.go │ ├── motion_blur_protocol.gen.go │ ├── nine_part_stretched_protocol.gen.go │ ├── nine_part_tiled_protocol.gen.go │ ├── noise_reduction_protocol.gen.go │ ├── op_tile_protocol.gen.go │ ├── page_curl_transition_protocol.gen.go │ ├── page_curl_with_shadow_transition_protocol.gen.go │ ├── palette_centroid_protocol.gen.go │ ├── palettize_protocol.gen.go │ ├── parallelogram_tile_protocol.gen.go │ ├── pd_f417_barcode_generator_protocol.gen.go │ ├── pd_f417_code_descriptor.gen.go │ ├── person_segmentation_protocol.gen.go │ ├── perspective_correction_protocol.gen.go │ ├── perspective_rotate_protocol.gen.go │ ├── perspective_tile_protocol.gen.go │ ├── perspective_transform_protocol.gen.go │ ├── perspective_transform_with_extent_protocol.gen.go │ ├── photo_effect_protocol.gen.go │ ├── pinch_distortion_protocol.gen.go │ ├── pixellate_protocol.gen.go │ ├── plug_in.gen.go │ ├── plug_in_registration_protocol.gen.go │ ├── pointillize_protocol.gen.go │ ├── qr_code_descriptor.gen.go │ ├── qr_code_feature.gen.go │ ├── qr_code_generator_protocol.gen.go │ ├── radial_gradient_protocol.gen.go │ ├── random_generator_protocol.gen.go │ ├── raw_filter.gen.go │ ├── rectangle_feature.gen.go │ ├── render_destination.gen.go │ ├── render_info.gen.go │ ├── render_task.gen.go │ ├── ripple_transition_protocol.gen.go │ ├── rounded_rectangle_generator_protocol.gen.go │ ├── row_average_protocol.gen.go │ ├── saliency_map_protocol.gen.go │ ├── sampler.gen.go │ ├── sepia_tone_protocol.gen.go │ ├── shaded_material_protocol.gen.go │ ├── sharpen_luminance_protocol.gen.go │ ├── sixfold_reflected_tile_protocol.gen.go │ ├── sixfold_rotated_tile_protocol.gen.go │ ├── smooth_linear_gradient_protocol.gen.go │ ├── spot_color_protocol.gen.go │ ├── spot_light_protocol.gen.go │ ├── srgb_tone_curve_to_linear_protocol.gen.go │ ├── star_shine_generator_protocol.gen.go │ ├── straighten_protocol.gen.go │ ├── stretch_crop_protocol.gen.go │ ├── stripes_generator_protocol.gen.go │ ├── sunbeams_generator_protocol.gen.go │ ├── swipe_transition_protocol.gen.go │ ├── temperature_and_tint_protocol.gen.go │ ├── text_feature.gen.go │ ├── text_image_generator_protocol.gen.go │ ├── thermal_protocol.gen.go │ ├── tone_curve_protocol.gen.go │ ├── torus_lens_distortion_protocol.gen.go │ ├── transition_filter_protocol.gen.go │ ├── triangle_kaleidoscope_protocol.gen.go │ ├── triangle_tile_protocol.gen.go │ ├── twelvefold_reflected_tile_protocol.gen.go │ ├── twirl_distortion_protocol.gen.go │ ├── unsharp_mask_protocol.gen.go │ ├── vector.gen.go │ ├── vibrance_protocol.gen.go │ ├── vignette_effect_protocol.gen.go │ ├── vignette_protocol.gen.go │ ├── vortex_distortion_protocol.gen.go │ ├── warp_kernel.gen.go │ ├── white_point_adjust_protocol.gen.go │ ├── x_ray_protocol.gen.go │ └── zoom_blur_protocol.gen.go ├── corelocation │ ├── aliastypes.gen.go │ ├── beacon.gen.go │ ├── beacon_region.gen.go │ ├── circular_region.gen.go │ ├── corelocation.go │ ├── corelocation_structs.go │ ├── corelocation_test.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── floor.gen.go │ ├── geocoder.gen.go │ ├── heading.gen.go │ ├── location.gen.go │ ├── location_manager.gen.go │ ├── location_manager_delegate.gen.go │ ├── location_source_information.gen.go │ ├── placemark.gen.go │ ├── protocols.gen.m │ ├── region.gen.go │ └── visit.gen.go ├── coremedia │ ├── aliastypes.gen.go │ ├── coremedia.go │ ├── coremedia_custom.go │ ├── coremedia_structs.go │ ├── coremedia_test.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ └── protocols.gen.m ├── coremediaio │ ├── aliastypes.gen.go │ ├── coremediaio.go │ ├── coremediaio_structs.go │ ├── coremediaio_test.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── extension_client.gen.go │ ├── extension_device.gen.go │ ├── extension_device_properties.gen.go │ ├── extension_device_source_protocol.gen.go │ ├── extension_property_attributes.gen.go │ ├── extension_property_state.gen.go │ ├── extension_provider.gen.go │ ├── extension_provider_properties.gen.go │ ├── extension_provider_source_protocol.gen.go │ ├── extension_scheduled_output.gen.go │ ├── extension_stream.gen.go │ ├── extension_stream_custom_clock_configuration.gen.go │ ├── extension_stream_format.gen.go │ ├── extension_stream_properties.gen.go │ └── extension_stream_source_protocol.gen.go ├── coremidi │ ├── aliastypes.gen.go │ ├── ci_device_info.gen.go │ ├── ci_discovered_node.gen.go │ ├── ci_discovery_manager.gen.go │ ├── ci_profile.gen.go │ ├── ci_profile_responder_delegate.gen.go │ ├── ci_profile_state.gen.go │ ├── ci_responder.gen.go │ ├── ci_session.gen.go │ ├── coremidi.go │ ├── coremidi_custom.go │ ├── coremidi_structs.go │ ├── coremidi_test.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── network_connection.gen.go │ ├── network_host.gen.go │ ├── network_session.gen.go │ └── protocols.gen.m ├── coreml │ ├── array_batch_provider.gen.go │ ├── batch_provider_protocol.gen.go │ ├── coreml.go │ ├── coreml_test.go │ ├── custom_layer_protocol.gen.go │ ├── custom_model_protocol.gen.go │ ├── dictionary_constraint.gen.go │ ├── dictionary_feature_provider.gen.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── feature_description.gen.go │ ├── feature_provider_protocol.gen.go │ ├── feature_value.gen.go │ ├── image_constraint.gen.go │ ├── image_size.gen.go │ ├── image_size_constraint.gen.go │ ├── key.gen.go │ ├── metric_key.gen.go │ ├── model.gen.go │ ├── model_collection.gen.go │ ├── model_collection_entry.gen.go │ ├── model_configuration.gen.go │ ├── model_description.gen.go │ ├── multi_array.gen.go │ ├── multi_array_constraint.gen.go │ ├── multi_array_shape_constraint.gen.go │ ├── numeric_constraint.gen.go │ ├── parameter_description.gen.go │ ├── parameter_key.gen.go │ ├── prediction_options.gen.go │ ├── protocols.gen.m │ ├── sequence.gen.go │ ├── sequence_constraint.gen.go │ ├── task.gen.go │ ├── update_context.gen.go │ ├── update_progress_handlers.gen.go │ ├── update_task.gen.go │ └── writable_protocol.gen.go ├── corespotlight │ ├── corespotlight.go │ ├── corespotlight_test.go │ ├── custom_attribute_key.gen.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── import_extension.gen.go │ ├── index_extension_request_handler.gen.go │ ├── localized_string.gen.go │ ├── person.gen.go │ ├── protocols.gen.m │ ├── search_query.gen.go │ ├── searchable_index.gen.go │ ├── searchable_index_delegate.gen.go │ ├── searchable_item.gen.go │ └── searchable_item_attribute_set.gen.go ├── corevideo │ ├── aliastypes.gen.go │ ├── corevideo.go │ ├── corevideo_custom.go │ ├── corevideo_structs.go │ ├── corevideo_test.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ └── protocols.gen.m ├── fileprovider │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── file_provider_change_observer_protocol.gen.go │ ├── file_provider_custom_action_protocol.gen.go │ ├── file_provider_domain.gen.go │ ├── file_provider_domain_state_protocol.gen.go │ ├── file_provider_domain_version.gen.go │ ├── file_provider_enumerating_protocol.gen.go │ ├── file_provider_enumeration_observer_protocol.gen.go │ ├── file_provider_enumerator_protocol.gen.go │ ├── file_provider_incremental_content_fetching_protocol.gen.go │ ├── file_provider_item_decorating_protocol.gen.go │ ├── file_provider_item_version.gen.go │ ├── file_provider_manager.gen.go │ ├── file_provider_partial_content_fetching_protocol.gen.go │ ├── file_provider_pending_set_enumerator_protocol.gen.go │ ├── file_provider_replicated_extension_protocol.gen.go │ ├── file_provider_request.gen.go │ ├── file_provider_service_source_protocol.gen.go │ ├── file_provider_servicing_protocol.gen.go │ ├── file_provider_testing_children_enumeration_protocol.gen.go │ ├── file_provider_testing_collision_resolution_protocol.gen.go │ ├── file_provider_testing_content_fetch_protocol.gen.go │ ├── file_provider_testing_creation_protocol.gen.go │ ├── file_provider_testing_deletion_protocol.gen.go │ ├── file_provider_testing_ingestion_protocol.gen.go │ ├── file_provider_testing_lookup_protocol.gen.go │ ├── file_provider_testing_modification_protocol.gen.go │ ├── file_provider_testing_operation_protocol.gen.go │ ├── file_provider_thumbnailing_protocol.gen.go │ ├── file_provider_user_interaction_suppressing_protocol.gen.go │ ├── fileprovider.go │ ├── fileprovider_custom.go │ ├── fileprovider_structs.go │ └── fileprovider_test.go ├── foundation │ ├── affine_transform.gen.go │ ├── aliastypes.gen.go │ ├── apple_event_descriptor.gen.go │ ├── apple_event_manager.gen.go │ ├── apple_script.gen.go │ ├── archiver.gen.go │ ├── array.gen.go │ ├── assertion_handler.gen.go │ ├── attributed_string.gen.go │ ├── attributed_string_markdown_parsing_options.gen.go │ ├── autorelease_pool.gen.go │ ├── background_activity_scheduler.gen.go │ ├── block_operation.gen.go │ ├── bundle.gen.go │ ├── byte_count_formatter.gen.go │ ├── cache.gen.go │ ├── cache_delegate.gen.go │ ├── cached_url_response.gen.go │ ├── calendar.gen.go │ ├── calendar_date.gen.go │ ├── character_set.gen.go │ ├── class_description.gen.go │ ├── clone_command.gen.go │ ├── close_command.gen.go │ ├── coder.gen.go │ ├── coding_protocol.gen.go │ ├── comparison_predicate.gen.go │ ├── compound_predicate.gen.go │ ├── condition.gen.go │ ├── condition_lock.gen.go │ ├── connection.gen.go │ ├── connection_delegate.gen.go │ ├── copying_protocol.gen.go │ ├── count_command.gen.go │ ├── counted_set.gen.go │ ├── create_command.gen.go │ ├── data.gen.go │ ├── data_detector.gen.go │ ├── date.gen.go │ ├── date_components.gen.go │ ├── date_components_formatter.gen.go │ ├── date_formatter.gen.go │ ├── date_interval.gen.go │ ├── date_interval_formatter.gen.go │ ├── decimal_number.gen.go │ ├── decimal_number_behaviors_protocol.gen.go │ ├── decimal_number_handler.gen.go │ ├── delete_command.gen.go │ ├── dictionary.gen.go │ ├── dimension.gen.go │ ├── directory_enumerator.gen.go │ ├── discardable_content_protocol.gen.go │ ├── distant_object_request.gen.go │ ├── distributed_lock.gen.go │ ├── distributed_notification_center.gen.go │ ├── doc.gen.go │ ├── energy_formatter.gen.go │ ├── enumerator.gen.go │ ├── enumtypes.gen.go │ ├── error.gen.go │ ├── exception.gen.go │ ├── exists_command.gen.go │ ├── expression.gen.go │ ├── extension_context.gen.go │ ├── extension_item.gen.go │ ├── extension_request_handling_protocol.gen.go │ ├── fast_enumeration_protocol.gen.go │ ├── file_access_intent.gen.go │ ├── file_coordinator.gen.go │ ├── file_handle.gen.go │ ├── file_manager.gen.go │ ├── file_manager_delegate.gen.go │ ├── file_presenter_protocol.gen.go │ ├── file_provider_service.gen.go │ ├── file_security.gen.go │ ├── file_version.gen.go │ ├── file_wrapper.gen.go │ ├── formatter.gen.go │ ├── foundation.go │ ├── foundation_custom.go │ ├── foundation_structs.go │ ├── foundation_test.go │ ├── garbage_collector.gen.go │ ├── get_command.gen.go │ ├── hash_table.gen.go │ ├── host.gen.go │ ├── http_cookie.gen.go │ ├── http_cookie_storage.gen.go │ ├── httpurl_response.gen.go │ ├── index_path.gen.go │ ├── index_set.gen.go │ ├── index_specifier.gen.go │ ├── inflection_rule.gen.go │ ├── inflection_rule_explicit.gen.go │ ├── input_stream.gen.go │ ├── invocation.gen.go │ ├── invocation_operation.gen.go │ ├── is_o8601_date_formatter.gen.go │ ├── item_provider.gen.go │ ├── item_provider_writing_protocol.gen.go │ ├── json_serialization.gen.go │ ├── keyed_archiver.gen.go │ ├── keyed_archiver_delegate.gen.go │ ├── keyed_unarchiver.gen.go │ ├── keyed_unarchiver_delegate.gen.go │ ├── length_formatter.gen.go │ ├── linguistic_tagger.gen.go │ ├── list_formatter.gen.go │ ├── locale.gen.go │ ├── lock.gen.go │ ├── locking_protocol.gen.go │ ├── logical_test.gen.go │ ├── mach_bootstrap_server.gen.go │ ├── mach_port.gen.go │ ├── mach_port_delegate.gen.go │ ├── map_table.gen.go │ ├── mass_formatter.gen.go │ ├── measurement.gen.go │ ├── measurement_formatter.gen.go │ ├── message_port.gen.go │ ├── message_port_name_server.gen.go │ ├── metadata_item.gen.go │ ├── metadata_query.gen.go │ ├── metadata_query_attribute_value_tuple.gen.go │ ├── metadata_query_delegate.gen.go │ ├── metadata_query_result_group.gen.go │ ├── method_signature.gen.go │ ├── middle_specifier.gen.go │ ├── morphology.gen.go │ ├── morphology_custom_pronoun.gen.go │ ├── move_command.gen.go │ ├── mutable_array.gen.go │ ├── mutable_attributed_string.gen.go │ ├── mutable_character_set.gen.go │ ├── mutable_copying_protocol.gen.go │ ├── mutable_data.gen.go │ ├── mutable_dictionary.gen.go │ ├── mutable_index_set.gen.go │ ├── mutable_ordered_set.gen.go │ ├── mutable_set.gen.go │ ├── mutable_string.gen.go │ ├── mutable_url_request.gen.go │ ├── name_specifier.gen.go │ ├── net_service.gen.go │ ├── net_service_browser.gen.go │ ├── net_service_browser_delegate.gen.go │ ├── net_service_delegate.gen.go │ ├── notification.gen.go │ ├── notification_center.gen.go │ ├── notification_queue.gen.go │ ├── null.gen.go │ ├── number.gen.go │ ├── number_formatter.gen.go │ ├── operation.gen.go │ ├── operation_queue.gen.go │ ├── ordered_collection_change.gen.go │ ├── ordered_collection_difference.gen.go │ ├── ordered_set.gen.go │ ├── orthography.gen.go │ ├── output_stream.gen.go │ ├── person_name_components.gen.go │ ├── person_name_components_formatter.gen.go │ ├── pipe.gen.go │ ├── pointer_array.gen.go │ ├── pointer_functions.gen.go │ ├── port.gen.go │ ├── port_coder.gen.go │ ├── port_delegate.gen.go │ ├── port_message.gen.go │ ├── port_name_server.gen.go │ ├── positional_specifier.gen.go │ ├── predicate.gen.go │ ├── presentation_intent.gen.go │ ├── process_info.gen.go │ ├── progress.gen.go │ ├── progress_reporting_protocol.gen.go │ ├── property_list_serialization.gen.go │ ├── property_specifier.gen.go │ ├── protocols.gen.m │ ├── purgeable_data.gen.go │ ├── quit_command.gen.go │ ├── random_specifier.gen.go │ ├── range_specifier.gen.go │ ├── recursive_lock.gen.go │ ├── regular_expression.gen.go │ ├── relative_date_time_formatter.gen.go │ ├── relative_specifier.gen.go │ ├── run_loop.gen.go │ ├── scanner.gen.go │ ├── script_class_description.gen.go │ ├── script_coercion_handler.gen.go │ ├── script_command.gen.go │ ├── script_command_description.gen.go │ ├── script_execution_context.gen.go │ ├── script_object_specifier.gen.go │ ├── script_suite_registry.gen.go │ ├── script_whose_test.gen.go │ ├── secure_unarchive_from_data_transformer.gen.go │ ├── set.gen.go │ ├── set_command.gen.go │ ├── socket_port.gen.go │ ├── socket_port_name_server.gen.go │ ├── sort_descriptor.gen.go │ ├── specifier_test.gen.go │ ├── spell_server.gen.go │ ├── spell_server_delegate.gen.go │ ├── stream.gen.go │ ├── stream_delegate.gen.go │ ├── string.gen.go │ ├── task.gen.go │ ├── text_checking_result.gen.go │ ├── thread.gen.go │ ├── time_zone.gen.go │ ├── timer.gen.go │ ├── ubiquitous_key_value_store.gen.go │ ├── unarchiver.gen.go │ ├── undo_manager.gen.go │ ├── unique_id_specifier.gen.go │ ├── unit.gen.go │ ├── unit_acceleration.gen.go │ ├── unit_angle.gen.go │ ├── unit_area.gen.go │ ├── unit_concentration_mass.gen.go │ ├── unit_converter.gen.go │ ├── unit_converter_linear.gen.go │ ├── unit_dispersion.gen.go │ ├── unit_duration.gen.go │ ├── unit_electric_charge.gen.go │ ├── unit_electric_current.gen.go │ ├── unit_electric_potential_difference.gen.go │ ├── unit_electric_resistance.gen.go │ ├── unit_energy.gen.go │ ├── unit_frequency.gen.go │ ├── unit_fuel_efficiency.gen.go │ ├── unit_illuminance.gen.go │ ├── unit_information_storage.gen.go │ ├── unit_length.gen.go │ ├── unit_mass.gen.go │ ├── unit_power.gen.go │ ├── unit_pressure.gen.go │ ├── unit_speed.gen.go │ ├── unit_temperature.gen.go │ ├── unit_volume.gen.go │ ├── url.gen.go │ ├── url_authentication_challenge.gen.go │ ├── url_authentication_challenge_sender_protocol.gen.go │ ├── url_cache.gen.go │ ├── url_components.gen.go │ ├── url_connection.gen.go │ ├── url_connection_data_delegate.gen.go │ ├── url_connection_delegate.gen.go │ ├── url_connection_download_delegate.gen.go │ ├── url_credential.gen.go │ ├── url_credential_storage.gen.go │ ├── url_download.gen.go │ ├── url_download_delegate.gen.go │ ├── url_handle.gen.go │ ├── url_handle_client_protocol.gen.go │ ├── url_protection_space.gen.go │ ├── url_protocol.gen.go │ ├── url_protocol_client_protocol.gen.go │ ├── url_query_item.gen.go │ ├── url_request.gen.go │ ├── url_response.gen.go │ ├── url_session.gen.go │ ├── url_session_configuration.gen.go │ ├── url_session_data_delegate.gen.go │ ├── url_session_data_task.gen.go │ ├── url_session_delegate.gen.go │ ├── url_session_download_delegate.gen.go │ ├── url_session_download_task.gen.go │ ├── url_session_stream_delegate.gen.go │ ├── url_session_stream_task.gen.go │ ├── url_session_task.gen.go │ ├── url_session_task_delegate.gen.go │ ├── url_session_task_metrics.gen.go │ ├── url_session_task_transaction_metrics.gen.go │ ├── url_session_upload_task.gen.go │ ├── url_session_web_socket_delegate.gen.go │ ├── url_session_web_socket_message.gen.go │ ├── url_session_web_socket_task.gen.go │ ├── user_activity.gen.go │ ├── user_activity_delegate.gen.go │ ├── user_apple_script_task.gen.go │ ├── user_automator_task.gen.go │ ├── user_defaults.gen.go │ ├── user_notification.gen.go │ ├── user_notification_action.gen.go │ ├── user_notification_center.gen.go │ ├── user_notification_center_delegate.gen.go │ ├── user_script_task.gen.go │ ├── user_unix_task.gen.go │ ├── uuid.gen.go │ ├── value.gen.go │ ├── value_transformer.gen.go │ ├── whose_specifier.gen.go │ ├── xml_document.gen.go │ ├── xml_element.gen.go │ ├── xml_node.gen.go │ ├── xml_parser.gen.go │ ├── xml_parser_delegate.gen.go │ ├── xmldtd.gen.go │ ├── xmldtd_node.gen.go │ ├── xpc_coder.gen.go │ ├── xpc_connection.gen.go │ ├── xpc_interface.gen.go │ ├── xpc_listener.gen.go │ ├── xpc_listener_delegate.gen.go │ ├── xpc_listener_endpoint.gen.go │ └── xpc_proxy_creating_protocol.gen.go ├── imageio │ ├── aliastypes.gen.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── imageio.go │ ├── imageio_structs.go │ ├── imageio_test.go │ └── protocols.gen.m ├── iosurface │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── io_surface.gen.go │ ├── iosurface.go │ ├── iosurface_structs.go │ ├── iosurface_test.go │ └── protocols.gen.m ├── macos.go ├── macos_test.go ├── mediaplayer │ ├── change_language_option_command_event.gen.go │ ├── change_playback_position_command.gen.go │ ├── change_playback_position_command_event.gen.go │ ├── change_playback_rate_command.gen.go │ ├── change_playback_rate_command_event.gen.go │ ├── change_repeat_mode_command.gen.go │ ├── change_repeat_mode_command_event.gen.go │ ├── change_shuffle_mode_command.gen.go │ ├── change_shuffle_mode_command_event.gen.go │ ├── content_item.gen.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── feedback_command.gen.go │ ├── feedback_command_event.gen.go │ ├── media_item_artwork.gen.go │ ├── mediaplayer.go │ ├── mediaplayer_custom.go │ ├── mediaplayer_test.go │ ├── now_playing_info_center.gen.go │ ├── now_playing_info_language_option.gen.go │ ├── now_playing_info_language_option_group.gen.go │ ├── protocols.gen.m │ ├── rating_command.gen.go │ ├── rating_command_event.gen.go │ ├── remote_command.gen.go │ ├── remote_command_center.gen.go │ ├── remote_command_event.gen.go │ ├── seek_command_event.gen.go │ ├── skip_interval_command.gen.go │ ├── skip_interval_command_event.gen.go │ └── system_music_player_controller_protocol.gen.go ├── metal │ ├── acceleration_structure_bounding_box_geometry_descriptor.gen.go │ ├── acceleration_structure_command_encoder_protocol.gen.go │ ├── acceleration_structure_descriptor.gen.go │ ├── acceleration_structure_geometry_descriptor.gen.go │ ├── acceleration_structure_motion_bounding_box_geometry_descriptor.gen.go │ ├── acceleration_structure_motion_triangle_geometry_descriptor.gen.go │ ├── acceleration_structure_protocol.gen.go │ ├── acceleration_structure_triangle_geometry_descriptor.gen.go │ ├── aliastypes.gen.go │ ├── argument.gen.go │ ├── argument_descriptor.gen.go │ ├── argument_encoder_protocol.gen.go │ ├── array_type.gen.go │ ├── attribute.gen.go │ ├── attribute_descriptor.gen.go │ ├── attribute_descriptor_array.gen.go │ ├── binary_archive_descriptor.gen.go │ ├── binary_archive_protocol.gen.go │ ├── blit_command_encoder_protocol.gen.go │ ├── blit_pass_descriptor.gen.go │ ├── blit_pass_sample_buffer_attachment_descriptor.gen.go │ ├── blit_pass_sample_buffer_attachment_descriptor_array.gen.go │ ├── buffer_layout_descriptor.gen.go │ ├── buffer_layout_descriptor_array.gen.go │ ├── buffer_protocol.gen.go │ ├── capture_descriptor.gen.go │ ├── capture_manager.gen.go │ ├── capture_scope_protocol.gen.go │ ├── command_buffer_descriptor.gen.go │ ├── command_buffer_encoder_info_protocol.gen.go │ ├── command_buffer_protocol.gen.go │ ├── command_encoder_protocol.gen.go │ ├── command_queue_protocol.gen.go │ ├── compile_options.gen.go │ ├── compute_command_encoder_protocol.gen.go │ ├── compute_pass_descriptor.gen.go │ ├── compute_pass_sample_buffer_attachment_descriptor.gen.go │ ├── compute_pass_sample_buffer_attachment_descriptor_array.gen.go │ ├── compute_pipeline_descriptor.gen.go │ ├── compute_pipeline_reflection.gen.go │ ├── compute_pipeline_state_protocol.gen.go │ ├── counter_protocol.gen.go │ ├── counter_sample_buffer_descriptor.gen.go │ ├── counter_sample_buffer_protocol.gen.go │ ├── counter_set_protocol.gen.go │ ├── depth_stencil_descriptor.gen.go │ ├── depth_stencil_state_protocol.gen.go │ ├── device_protocol.gen.go │ ├── doc.gen.go │ ├── drawable_protocol.gen.go │ ├── dynamic_library_protocol.gen.go │ ├── enumtypes.gen.go │ ├── event_protocol.gen.go │ ├── fence_protocol.gen.go │ ├── function_constant.gen.go │ ├── function_constant_values.gen.go │ ├── function_descriptor.gen.go │ ├── function_handle_protocol.gen.go │ ├── function_log_debug_location_protocol.gen.go │ ├── function_log_protocol.gen.go │ ├── function_protocol.gen.go │ ├── function_stitching_attribute_always_inline.gen.go │ ├── function_stitching_attribute_protocol.gen.go │ ├── function_stitching_function_node.gen.go │ ├── function_stitching_graph.gen.go │ ├── function_stitching_input_node.gen.go │ ├── function_stitching_node_protocol.gen.go │ ├── heap_descriptor.gen.go │ ├── heap_protocol.gen.go │ ├── indirect_command_buffer_descriptor.gen.go │ ├── indirect_command_buffer_protocol.gen.go │ ├── indirect_compute_command_protocol.gen.go │ ├── indirect_render_command_protocol.gen.go │ ├── instance_acceleration_structure_descriptor.gen.go │ ├── intersection_function_descriptor.gen.go │ ├── intersection_function_table_descriptor.gen.go │ ├── intersection_function_table_protocol.gen.go │ ├── library_protocol.gen.go │ ├── linked_functions.gen.go │ ├── log_container_protocol.gen.go │ ├── metal.go │ ├── metal_custom.go │ ├── metal_structs.go │ ├── metal_test.go │ ├── motion_keyframe_data.gen.go │ ├── parallel_render_command_encoder_protocol.gen.go │ ├── pipeline_buffer_descriptor.gen.go │ ├── pipeline_buffer_descriptor_array.gen.go │ ├── pointer_type.gen.go │ ├── primitive_acceleration_structure_descriptor.gen.go │ ├── protocols.gen.m │ ├── rasterization_rate_layer_array.gen.go │ ├── rasterization_rate_layer_descriptor.gen.go │ ├── rasterization_rate_map_descriptor.gen.go │ ├── rasterization_rate_map_protocol.gen.go │ ├── rasterization_rate_sample_array.gen.go │ ├── render_command_encoder_protocol.gen.go │ ├── render_pass_attachment_descriptor.gen.go │ ├── render_pass_color_attachment_descriptor.gen.go │ ├── render_pass_color_attachment_descriptor_array.gen.go │ ├── render_pass_depth_attachment_descriptor.gen.go │ ├── render_pass_descriptor.gen.go │ ├── render_pass_sample_buffer_attachment_descriptor.gen.go │ ├── render_pass_sample_buffer_attachment_descriptor_array.gen.go │ ├── render_pass_stencil_attachment_descriptor.gen.go │ ├── render_pipeline_color_attachment_descriptor.gen.go │ ├── render_pipeline_color_attachment_descriptor_array.gen.go │ ├── render_pipeline_descriptor.gen.go │ ├── render_pipeline_functions_descriptor.gen.go │ ├── render_pipeline_reflection.gen.go │ ├── render_pipeline_state_protocol.gen.go │ ├── resource_protocol.gen.go │ ├── resource_state_command_encoder_protocol.gen.go │ ├── resource_state_pass_descriptor.gen.go │ ├── resource_state_pass_sample_buffer_attachment_descriptor.gen.go │ ├── resource_state_pass_sample_buffer_attachment_descriptor_array.gen.go │ ├── sampler_descriptor.gen.go │ ├── sampler_state_protocol.gen.go │ ├── shared_event_handle.gen.go │ ├── shared_event_listener.gen.go │ ├── shared_event_protocol.gen.go │ ├── shared_texture_handle.gen.go │ ├── stage_input_output_descriptor.gen.go │ ├── stencil_descriptor.gen.go │ ├── stitched_library_descriptor.gen.go │ ├── struct_member.gen.go │ ├── struct_type.gen.go │ ├── texture_descriptor.gen.go │ ├── texture_protocol.gen.go │ ├── texture_reference_type.gen.go │ ├── tile_render_pipeline_color_attachment_descriptor.gen.go │ ├── tile_render_pipeline_color_attachment_descriptor_array.gen.go │ ├── tile_render_pipeline_descriptor.gen.go │ ├── type.gen.go │ ├── vertex_attribute.gen.go │ ├── vertex_attribute_descriptor.gen.go │ ├── vertex_attribute_descriptor_array.gen.go │ ├── vertex_buffer_layout_descriptor.gen.go │ ├── vertex_buffer_layout_descriptor_array.gen.go │ ├── vertex_descriptor.gen.go │ ├── visible_function_table_descriptor.gen.go │ └── visible_function_table_protocol.gen.go ├── mps │ ├── acceleration_structure.gen.go │ ├── acceleration_structure_group.gen.go │ ├── aliastypes.gen.go │ ├── binary_image_kernel.gen.go │ ├── cnn_add.gen.go │ ├── cnn_add_gradient.gen.go │ ├── cnn_arithmetic.gen.go │ ├── cnn_arithmetic_gradient.gen.go │ ├── cnn_arithmetic_gradient_state.gen.go │ ├── cnn_batch_normalization.gen.go │ ├── cnn_batch_normalization_data_source_protocol.gen.go │ ├── cnn_batch_normalization_gradient.gen.go │ ├── cnn_batch_normalization_gradient_node.gen.go │ ├── cnn_batch_normalization_node.gen.go │ ├── cnn_batch_normalization_state.gen.go │ ├── cnn_batch_normalization_statistics.gen.go │ ├── cnn_batch_normalization_statistics_gradient.gen.go │ ├── cnn_binary_convolution.gen.go │ ├── cnn_binary_convolution_node.gen.go │ ├── cnn_binary_fully_connected.gen.go │ ├── cnn_binary_fully_connected_node.gen.go │ ├── cnn_binary_kernel.gen.go │ ├── cnn_convolution.gen.go │ ├── cnn_convolution_data_source_protocol.gen.go │ ├── cnn_convolution_descriptor.gen.go │ ├── cnn_convolution_gradient.gen.go │ ├── cnn_convolution_gradient_node.gen.go │ ├── cnn_convolution_gradient_state.gen.go │ ├── cnn_convolution_gradient_state_node.gen.go │ ├── cnn_convolution_node.gen.go │ ├── cnn_convolution_transpose.gen.go │ ├── cnn_convolution_transpose_gradient.gen.go │ ├── cnn_convolution_transpose_gradient_node.gen.go │ ├── cnn_convolution_transpose_gradient_state.gen.go │ ├── cnn_convolution_transpose_gradient_state_node.gen.go │ ├── cnn_convolution_transpose_node.gen.go │ ├── cnn_convolution_weights_and_biases_state.gen.go │ ├── cnn_cross_channel_normalization.gen.go │ ├── cnn_cross_channel_normalization_gradient.gen.go │ ├── cnn_cross_channel_normalization_gradient_node.gen.go │ ├── cnn_cross_channel_normalization_node.gen.go │ ├── cnn_depth_wise_convolution_descriptor.gen.go │ ├── cnn_dilated_pooling_max.gen.go │ ├── cnn_dilated_pooling_max_gradient.gen.go │ ├── cnn_dilated_pooling_max_gradient_node.gen.go │ ├── cnn_dilated_pooling_max_node.gen.go │ ├── cnn_divide.gen.go │ ├── cnn_dropout.gen.go │ ├── cnn_dropout_gradient.gen.go │ ├── cnn_dropout_gradient_node.gen.go │ ├── cnn_dropout_gradient_state.gen.go │ ├── cnn_dropout_node.gen.go │ ├── cnn_fully_connected.gen.go │ ├── cnn_fully_connected_gradient.gen.go │ ├── cnn_fully_connected_gradient_node.gen.go │ ├── cnn_fully_connected_node.gen.go │ ├── cnn_gradient_kernel.gen.go │ ├── cnn_group_normalization.gen.go │ ├── cnn_group_normalization_data_source_protocol.gen.go │ ├── cnn_group_normalization_gradient.gen.go │ ├── cnn_group_normalization_gradient_node.gen.go │ ├── cnn_group_normalization_gradient_state.gen.go │ ├── cnn_group_normalization_node.gen.go │ ├── cnn_instance_normalization.gen.go │ ├── cnn_instance_normalization_data_source_protocol.gen.go │ ├── cnn_instance_normalization_gradient.gen.go │ ├── cnn_instance_normalization_gradient_node.gen.go │ ├── cnn_instance_normalization_gradient_state.gen.go │ ├── cnn_instance_normalization_node.gen.go │ ├── cnn_kernel.gen.go │ ├── cnn_local_contrast_normalization.gen.go │ ├── cnn_local_contrast_normalization_gradient.gen.go │ ├── cnn_local_contrast_normalization_gradient_node.gen.go │ ├── cnn_local_contrast_normalization_node.gen.go │ ├── cnn_log_soft_max.gen.go │ ├── cnn_log_soft_max_gradient.gen.go │ ├── cnn_log_soft_max_gradient_node.gen.go │ ├── cnn_log_soft_max_node.gen.go │ ├── cnn_loss.gen.go │ ├── cnn_loss_data_descriptor.gen.go │ ├── cnn_loss_descriptor.gen.go │ ├── cnn_loss_labels.gen.go │ ├── cnn_loss_node.gen.go │ ├── cnn_multiary_kernel.gen.go │ ├── cnn_multiply.gen.go │ ├── cnn_multiply_gradient.gen.go │ ├── cnn_neuron.gen.go │ ├── cnn_neuron_absolute.gen.go │ ├── cnn_neuron_absolute_node.gen.go │ ├── cnn_neuron_elu.gen.go │ ├── cnn_neuron_elu_node.gen.go │ ├── cnn_neuron_exponential.gen.go │ ├── cnn_neuron_exponential_node.gen.go │ ├── cnn_neuron_ge_lu_node.gen.go │ ├── cnn_neuron_gradient.gen.go │ ├── cnn_neuron_gradient_node.gen.go │ ├── cnn_neuron_hard_sigmoid.gen.go │ ├── cnn_neuron_hard_sigmoid_node.gen.go │ ├── cnn_neuron_linear.gen.go │ ├── cnn_neuron_linear_node.gen.go │ ├── cnn_neuron_logarithm.gen.go │ ├── cnn_neuron_logarithm_node.gen.go │ ├── cnn_neuron_node.gen.go │ ├── cnn_neuron_p_re_lu.gen.go │ ├── cnn_neuron_p_re_lu_node.gen.go │ ├── cnn_neuron_power.gen.go │ ├── cnn_neuron_power_node.gen.go │ ├── cnn_neuron_re_lu.gen.go │ ├── cnn_neuron_re_lu_node.gen.go │ ├── cnn_neuron_re_lun.gen.go │ ├── cnn_neuron_re_lun_node.gen.go │ ├── cnn_neuron_sigmoid.gen.go │ ├── cnn_neuron_sigmoid_node.gen.go │ ├── cnn_neuron_soft_plus.gen.go │ ├── cnn_neuron_soft_plus_node.gen.go │ ├── cnn_neuron_soft_sign.gen.go │ ├── cnn_neuron_soft_sign_node.gen.go │ ├── cnn_neuron_tan_h.gen.go │ ├── cnn_neuron_tan_h_node.gen.go │ ├── cnn_normalization_gamma_and_beta_state.gen.go │ ├── cnn_normalization_mean_and_variance_state.gen.go │ ├── cnn_normalization_node.gen.go │ ├── cnn_pooling.gen.go │ ├── cnn_pooling_average.gen.go │ ├── cnn_pooling_average_gradient.gen.go │ ├── cnn_pooling_average_gradient_node.gen.go │ ├── cnn_pooling_average_node.gen.go │ ├── cnn_pooling_gradient.gen.go │ ├── cnn_pooling_gradient_node.gen.go │ ├── cnn_pooling_l2_norm.gen.go │ ├── cnn_pooling_l2_norm_gradient.gen.go │ ├── cnn_pooling_l2_norm_gradient_node.gen.go │ ├── cnn_pooling_l2_norm_node.gen.go │ ├── cnn_pooling_max.gen.go │ ├── cnn_pooling_max_gradient.gen.go │ ├── cnn_pooling_max_gradient_node.gen.go │ ├── cnn_pooling_max_node.gen.go │ ├── cnn_pooling_node.gen.go │ ├── cnn_soft_max.gen.go │ ├── cnn_soft_max_gradient.gen.go │ ├── cnn_soft_max_gradient_node.gen.go │ ├── cnn_soft_max_node.gen.go │ ├── cnn_spatial_normalization.gen.go │ ├── cnn_spatial_normalization_gradient.gen.go │ ├── cnn_spatial_normalization_gradient_node.gen.go │ ├── cnn_spatial_normalization_node.gen.go │ ├── cnn_sub_pixel_convolution_descriptor.gen.go │ ├── cnn_subtract.gen.go │ ├── cnn_subtract_gradient.gen.go │ ├── cnn_upsampling.gen.go │ ├── cnn_upsampling_bilinear.gen.go │ ├── cnn_upsampling_bilinear_gradient.gen.go │ ├── cnn_upsampling_bilinear_gradient_node.gen.go │ ├── cnn_upsampling_bilinear_node.gen.go │ ├── cnn_upsampling_gradient.gen.go │ ├── cnn_upsampling_nearest.gen.go │ ├── cnn_upsampling_nearest_gradient.gen.go │ ├── cnn_upsampling_nearest_gradient_node.gen.go │ ├── cnn_upsampling_nearest_node.gen.go │ ├── cnnyolo_loss.gen.go │ ├── cnnyolo_loss_descriptor.gen.go │ ├── cnnyolo_loss_node.gen.go │ ├── command_buffer.gen.go │ ├── device_provider_protocol.gen.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── gru_descriptor.gen.go │ ├── handle_protocol.gen.go │ ├── heap_provider_protocol.gen.go │ ├── image.gen.go │ ├── image_add.gen.go │ ├── image_allocator_protocol.gen.go │ ├── image_area_max.gen.go │ ├── image_area_min.gen.go │ ├── image_arithmetic.gen.go │ ├── image_bilinear_scale.gen.go │ ├── image_box.gen.go │ ├── image_canny.gen.go │ ├── image_conversion.gen.go │ ├── image_convolution.gen.go │ ├── image_copy_to_matrix.gen.go │ ├── image_descriptor.gen.go │ ├── image_dilate.gen.go │ ├── image_divide.gen.go │ ├── image_ed_lines.gen.go │ ├── image_erode.gen.go │ ├── image_euclidean_distance_transform.gen.go │ ├── image_find_keypoints.gen.go │ ├── image_gaussian_blur.gen.go │ ├── image_gaussian_pyramid.gen.go │ ├── image_guided_filter.gen.go │ ├── image_histogram.gen.go │ ├── image_histogram_equalization.gen.go │ ├── image_histogram_specification.gen.go │ ├── image_integral.gen.go │ ├── image_integral_of_squares.gen.go │ ├── image_lanczos_scale.gen.go │ ├── image_laplacian.gen.go │ ├── image_laplacian_pyramid.gen.go │ ├── image_laplacian_pyramid_add.gen.go │ ├── image_laplacian_pyramid_subtract.gen.go │ ├── image_median.gen.go │ ├── image_multiply.gen.go │ ├── image_normalized_histogram.gen.go │ ├── image_pyramid.gen.go │ ├── image_reduce_column_max.gen.go │ ├── image_reduce_column_mean.gen.go │ ├── image_reduce_column_min.gen.go │ ├── image_reduce_column_sum.gen.go │ ├── image_reduce_row_max.gen.go │ ├── image_reduce_row_mean.gen.go │ ├── image_reduce_row_min.gen.go │ ├── image_reduce_row_sum.gen.go │ ├── image_reduce_unary.gen.go │ ├── image_scale.gen.go │ ├── image_size_encoding_state_protocol.gen.go │ ├── image_sobel.gen.go │ ├── image_statistics_mean.gen.go │ ├── image_statistics_mean_and_variance.gen.go │ ├── image_statistics_min_and_max.gen.go │ ├── image_subtract.gen.go │ ├── image_tent.gen.go │ ├── image_threshold_binary.gen.go │ ├── image_threshold_binary_inverse.gen.go │ ├── image_threshold_to_zero.gen.go │ ├── image_threshold_to_zero_inverse.gen.go │ ├── image_threshold_truncate.gen.go │ ├── image_transform_provider_protocol.gen.go │ ├── image_transpose.gen.go │ ├── instance_acceleration_structure.gen.go │ ├── kernel.gen.go │ ├── keyed_unarchiver.gen.go │ ├── lstm_descriptor.gen.go │ ├── matrix.gen.go │ ├── matrix_batch_normalization.gen.go │ ├── matrix_batch_normalization_gradient.gen.go │ ├── matrix_binary_kernel.gen.go │ ├── matrix_copy.gen.go │ ├── matrix_copy_descriptor.gen.go │ ├── matrix_copy_to_image.gen.go │ ├── matrix_decomposition_cholesky.gen.go │ ├── matrix_decomposition_lu.gen.go │ ├── matrix_descriptor.gen.go │ ├── matrix_find_top_k.gen.go │ ├── matrix_fully_connected.gen.go │ ├── matrix_fully_connected_gradient.gen.go │ ├── matrix_log_soft_max.gen.go │ ├── matrix_log_soft_max_gradient.gen.go │ ├── matrix_multiplication.gen.go │ ├── matrix_neuron.gen.go │ ├── matrix_neuron_gradient.gen.go │ ├── matrix_random.gen.go │ ├── matrix_random_distribution_descriptor.gen.go │ ├── matrix_random_mtg_p32.gen.go │ ├── matrix_random_philox.gen.go │ ├── matrix_soft_max.gen.go │ ├── matrix_soft_max_gradient.gen.go │ ├── matrix_solve_cholesky.gen.go │ ├── matrix_solve_lu.gen.go │ ├── matrix_solve_triangular.gen.go │ ├── matrix_sum.gen.go │ ├── matrix_unary_kernel.gen.go │ ├── matrix_vector_multiplication.gen.go │ ├── mps.go │ ├── mps_custom.go │ ├── mps_structs.go │ ├── mps_test.go │ ├── nd_array.gen.go │ ├── nd_array_allocator_protocol.gen.go │ ├── nd_array_binary_kernel.gen.go │ ├── nd_array_binary_primary_gradient_kernel.gen.go │ ├── nd_array_binary_secondary_gradient_kernel.gen.go │ ├── nd_array_descriptor.gen.go │ ├── nd_array_gather.gen.go │ ├── nd_array_gather_gradient.gen.go │ ├── nd_array_gather_gradient_state.gen.go │ ├── nd_array_gradient_state.gen.go │ ├── nd_array_matrix_multiplication.gen.go │ ├── nd_array_multiary_base.gen.go │ ├── nd_array_multiary_gradient_kernel.gen.go │ ├── nd_array_multiary_kernel.gen.go │ ├── nd_array_strided_slice.gen.go │ ├── nd_array_strided_slice_gradient.gen.go │ ├── nd_array_unary_gradient_kernel.gen.go │ ├── nd_array_unary_kernel.gen.go │ ├── nn_addition_gradient_node.gen.go │ ├── nn_addition_node.gen.go │ ├── nn_arithmetic_gradient_node.gen.go │ ├── nn_arithmetic_gradient_state_node.gen.go │ ├── nn_bilinear_scale_node.gen.go │ ├── nn_binary_arithmetic_node.gen.go │ ├── nn_binary_gradient_state.gen.go │ ├── nn_binary_gradient_state_node.gen.go │ ├── nn_compare.gen.go │ ├── nn_comparison_node.gen.go │ ├── nn_concatenation_gradient_node.gen.go │ ├── nn_concatenation_node.gen.go │ ├── nn_crop_and_resize_bilinear.gen.go │ ├── nn_default_padding.gen.go │ ├── nn_division_node.gen.go │ ├── nn_filter_node.gen.go │ ├── nn_forward_loss.gen.go │ ├── nn_forward_loss_node.gen.go │ ├── nn_gradient_filter_node.gen.go │ ├── nn_gradient_state.gen.go │ ├── nn_gradient_state_node.gen.go │ ├── nn_gram_matrix_calculation.gen.go │ ├── nn_gram_matrix_calculation_gradient.gen.go │ ├── nn_gram_matrix_calculation_gradient_node.gen.go │ ├── nn_gram_matrix_calculation_node.gen.go │ ├── nn_gram_matrix_callback_protocol.gen.go │ ├── nn_graph.gen.go │ ├── nn_grid_sample.gen.go │ ├── nn_image_node.gen.go │ ├── nn_initial_gradient.gen.go │ ├── nn_initial_gradient_node.gen.go │ ├── nn_labels_node.gen.go │ ├── nn_lanczos_scale_node.gen.go │ ├── nn_local_correlation.gen.go │ ├── nn_loss_callback_protocol.gen.go │ ├── nn_loss_gradient.gen.go │ ├── nn_loss_gradient_node.gen.go │ ├── nn_multiary_gradient_state.gen.go │ ├── nn_multiary_gradient_state_node.gen.go │ ├── nn_multiplication_gradient_node.gen.go │ ├── nn_multiplication_node.gen.go │ ├── nn_neuron_descriptor.gen.go │ ├── nn_optimizer.gen.go │ ├── nn_optimizer_adam.gen.go │ ├── nn_optimizer_descriptor.gen.go │ ├── nn_optimizer_rms_prop.gen.go │ ├── nn_optimizer_stochastic_gradient_descent.gen.go │ ├── nn_pad.gen.go │ ├── nn_pad_gradient.gen.go │ ├── nn_pad_gradient_node.gen.go │ ├── nn_pad_node.gen.go │ ├── nn_padding_protocol.gen.go │ ├── nn_reduce_binary.gen.go │ ├── nn_reduce_column_max.gen.go │ ├── nn_reduce_column_mean.gen.go │ ├── nn_reduce_column_min.gen.go │ ├── nn_reduce_column_sum.gen.go │ ├── nn_reduce_feature_channels_and_weights_mean.gen.go │ ├── nn_reduce_feature_channels_and_weights_sum.gen.go │ ├── nn_reduce_feature_channels_argument_max.gen.go │ ├── nn_reduce_feature_channels_argument_min.gen.go │ ├── nn_reduce_feature_channels_max.gen.go │ ├── nn_reduce_feature_channels_mean.gen.go │ ├── nn_reduce_feature_channels_min.gen.go │ ├── nn_reduce_feature_channels_sum.gen.go │ ├── nn_reduce_row_max.gen.go │ ├── nn_reduce_row_mean.gen.go │ ├── nn_reduce_row_min.gen.go │ ├── nn_reduce_row_sum.gen.go │ ├── nn_reduce_unary.gen.go │ ├── nn_reduction_column_max_node.gen.go │ ├── nn_reduction_column_mean_node.gen.go │ ├── nn_reduction_column_min_node.gen.go │ ├── nn_reduction_column_sum_node.gen.go │ ├── nn_reduction_feature_channels_argument_max_node.gen.go │ ├── nn_reduction_feature_channels_argument_min_node.gen.go │ ├── nn_reduction_feature_channels_max_node.gen.go │ ├── nn_reduction_feature_channels_mean_node.gen.go │ ├── nn_reduction_feature_channels_min_node.gen.go │ ├── nn_reduction_feature_channels_sum_node.gen.go │ ├── nn_reduction_row_max_node.gen.go │ ├── nn_reduction_row_mean_node.gen.go │ ├── nn_reduction_row_min_node.gen.go │ ├── nn_reduction_row_sum_node.gen.go │ ├── nn_reduction_spatial_mean_gradient_node.gen.go │ ├── nn_reduction_spatial_mean_node.gen.go │ ├── nn_reshape.gen.go │ ├── nn_reshape_gradient.gen.go │ ├── nn_reshape_gradient_node.gen.go │ ├── nn_reshape_node.gen.go │ ├── nn_resize_bilinear.gen.go │ ├── nn_scale_node.gen.go │ ├── nn_slice.gen.go │ ├── nn_state_node.gen.go │ ├── nn_subtraction_gradient_node.gen.go │ ├── nn_subtraction_node.gen.go │ ├── nn_trainable_node_protocol.gen.go │ ├── nn_unary_reduction_node.gen.go │ ├── polygon_acceleration_structure.gen.go │ ├── polygon_buffer.gen.go │ ├── predicate.gen.go │ ├── protocols.gen.m │ ├── quadrilateral_acceleration_structure.gen.go │ ├── ray_intersector.gen.go │ ├── rnn_descriptor.gen.go │ ├── rnn_image_inference_layer.gen.go │ ├── rnn_matrix_inference_layer.gen.go │ ├── rnn_matrix_training_layer.gen.go │ ├── rnn_matrix_training_state.gen.go │ ├── rnn_recurrent_image_state.gen.go │ ├── rnn_recurrent_matrix_state.gen.go │ ├── rnn_single_gate_descriptor.gen.go │ ├── state.gen.go │ ├── state_resource_list.gen.go │ ├── svgf.gen.go │ ├── svgf_default_texture_allocator.gen.go │ ├── svgf_denoiser.gen.go │ ├── svgf_texture_allocator_protocol.gen.go │ ├── temporal_aa.gen.go │ ├── temporary_image.gen.go │ ├── temporary_matrix.gen.go │ ├── temporary_nd_array.gen.go │ ├── temporary_vector.gen.go │ ├── triangle_acceleration_structure.gen.go │ ├── unary_image_kernel.gen.go │ ├── vector.gen.go │ └── vector_descriptor.gen.go ├── mpsgraph │ ├── aliastypes.gen.go │ ├── compilation_descriptor.gen.go │ ├── convolution2_d_op_descriptor.gen.go │ ├── create_sparse_op_descriptor.gen.go │ ├── depthwise_convolution2_d_op_descriptor.gen.go │ ├── depthwise_convolution3_d_op_descriptor.gen.go │ ├── device.gen.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── executable.gen.go │ ├── executable_execution_descriptor.gen.go │ ├── execution_descriptor.gen.go │ ├── graph.gen.go │ ├── lstm_descriptor.gen.go │ ├── mpsgraph.go │ ├── mpsgraph_test.go │ ├── operation.gen.go │ ├── pooling2_d_op_descriptor.gen.go │ ├── pooling4_d_op_descriptor.gen.go │ ├── protocols.gen.m │ ├── random_op_descriptor.gen.go │ ├── shaped_type.gen.go │ ├── single_gate_rnn_descriptor.gen.go │ ├── stencil_op_descriptor.gen.go │ ├── tensor.gen.go │ ├── tensor_data.gen.go │ ├── type.gen.go │ └── variable_op.gen.go ├── quartz │ ├── aliastypes.gen.go │ ├── camera_device_view.gen.go │ ├── camera_device_view_delegate.gen.go │ ├── composition.gen.go │ ├── composition_layer.gen.go │ ├── composition_parameter_view.gen.go │ ├── composition_picker_panel.gen.go │ ├── composition_picker_view.gen.go │ ├── composition_renderer_protocol.gen.go │ ├── composition_repository.gen.go │ ├── device_browser_view.gen.go │ ├── device_browser_view_delegate.gen.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── filter_browser_panel.gen.go │ ├── filter_browser_view.gen.go │ ├── filter_custom_ui_provider_protocol.gen.go │ ├── filter_ui_view.gen.go │ ├── image_browser_cell.gen.go │ ├── image_browser_view.gen.go │ ├── image_edit_panel.gen.go │ ├── image_edit_panel_data_source_protocol.gen.go │ ├── image_view.gen.go │ ├── patch_controller.gen.go │ ├── picture_taker.gen.go │ ├── plug_in.gen.go │ ├── plug_in_context_protocol.gen.go │ ├── plug_in_input_image_source_protocol.gen.go │ ├── plug_in_output_image_provider_protocol.gen.go │ ├── plug_in_view_controller.gen.go │ ├── protocols.gen.m │ ├── quartz.go │ ├── quartz_filter.gen.go │ ├── quartz_filter_manager.gen.go │ ├── quartz_filter_view.gen.go │ ├── quartz_test.go │ ├── renderer.gen.go │ ├── save_options.gen.go │ ├── scanner_device_view.gen.go │ ├── scanner_device_view_delegate.gen.go │ ├── slideshow.gen.go │ ├── slideshow_data_source_protocol.gen.go │ └── view.gen.go ├── quartzcore │ ├── action_protocol.gen.go │ ├── animation.gen.go │ ├── animation_delegate.gen.go │ ├── animation_group.gen.go │ ├── basic_animation.gen.go │ ├── constraint.gen.go │ ├── constraint_layout_manager.gen.go │ ├── doc.gen.go │ ├── edr_metadata.gen.go │ ├── emitter_cell.gen.go │ ├── emitter_layer.gen.go │ ├── enumtypes.gen.go │ ├── gradient_layer.gen.go │ ├── keyframe_animation.gen.go │ ├── layer.gen.go │ ├── layer_delegate.gen.go │ ├── layout_manager_protocol.gen.go │ ├── media_timing_function.gen.go │ ├── media_timing_protocol.gen.go │ ├── metal_drawable_protocol.gen.go │ ├── metal_layer.gen.go │ ├── open_gl_layer.gen.go │ ├── property_animation.gen.go │ ├── protocols.gen.m │ ├── quartzcore.go │ ├── quartzcore_structs.go │ ├── quartzcore_test.go │ ├── remote_layer_client.gen.go │ ├── remote_layer_server.gen.go │ ├── renderer.gen.go │ ├── replicator_layer.gen.go │ ├── scroll_layer.gen.go │ ├── shape_layer.gen.go │ ├── spring_animation.gen.go │ ├── text_layer.gen.go │ ├── tiled_layer.gen.go │ ├── transaction.gen.go │ ├── transform_layer.gen.go │ ├── transition.gen.go │ └── value_function.gen.go ├── sysconfig │ ├── aliastypes.gen.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── protocols.gen.m │ ├── sysconfig.go │ ├── sysconfig_custom.go │ ├── sysconfig_structs.go │ └── sysconfig_test.go ├── uti │ ├── doc.gen.go │ ├── protocols.gen.m │ ├── type.gen.go │ ├── uti.go │ └── uti_test.go ├── vision │ ├── aliastypes.gen.go │ ├── barcode_observation.gen.go │ ├── circle.gen.go │ ├── classification_observation.gen.go │ ├── classify_image_request.gen.go │ ├── contour.gen.go │ ├── contours_observation.gen.go │ ├── core_ml_feature_value_observation.gen.go │ ├── core_ml_model.gen.go │ ├── core_ml_request.gen.go │ ├── detect_barcodes_request.gen.go │ ├── detect_contours_request.gen.go │ ├── detect_document_segmentation_request.gen.go │ ├── detect_face_capture_quality_request.gen.go │ ├── detect_face_landmarks_request.gen.go │ ├── detect_face_rectangles_request.gen.go │ ├── detect_horizon_request.gen.go │ ├── detect_human_body_pose_request.gen.go │ ├── detect_human_hand_pose_request.gen.go │ ├── detect_human_rectangles_request.gen.go │ ├── detect_rectangles_request.gen.go │ ├── detect_text_rectangles_request.gen.go │ ├── detect_trajectories_request.gen.go │ ├── detected_object_observation.gen.go │ ├── detected_point.gen.go │ ├── doc.gen.go │ ├── enumtypes.gen.go │ ├── face_landmark_region.gen.go │ ├── face_landmark_region2_d.gen.go │ ├── face_landmarks.gen.go │ ├── face_landmarks2_d.gen.go │ ├── face_observation.gen.go │ ├── face_observation_accepting_protocol.gen.go │ ├── feature_print_observation.gen.go │ ├── generate_attention_based_saliency_image_request.gen.go │ ├── generate_image_feature_print_request.gen.go │ ├── generate_objectness_based_saliency_image_request.gen.go │ ├── generate_optical_flow_request.gen.go │ ├── generate_person_segmentation_request.gen.go │ ├── geometry_utils.gen.go │ ├── homographic_image_registration_request.gen.go │ ├── horizon_observation.gen.go │ ├── human_body_pose_observation.gen.go │ ├── human_hand_pose_observation.gen.go │ ├── human_observation.gen.go │ ├── image_alignment_observation.gen.go │ ├── image_based_request.gen.go │ ├── image_homographic_alignment_observation.gen.go │ ├── image_registration_request.gen.go │ ├── image_request_handler.gen.go │ ├── image_translation_alignment_observation.gen.go │ ├── observation.gen.go │ ├── pixel_buffer_observation.gen.go │ ├── point.gen.go │ ├── protocols.gen.m │ ├── recognize_animals_request.gen.go │ ├── recognize_text_request.gen.go │ ├── recognized_object_observation.gen.go │ ├── recognized_point.gen.go │ ├── recognized_points_observation.gen.go │ ├── recognized_text.gen.go │ ├── recognized_text_observation.gen.go │ ├── rectangle_observation.gen.go │ ├── request.gen.go │ ├── request_progress_providing_protocol.gen.go │ ├── request_revision_providing_protocol.gen.go │ ├── saliency_image_observation.gen.go │ ├── sequence_request_handler.gen.go │ ├── stateful_request.gen.go │ ├── targeted_image_request.gen.go │ ├── text_observation.gen.go │ ├── track_object_request.gen.go │ ├── track_rectangle_request.gen.go │ ├── tracking_request.gen.go │ ├── trajectory_observation.gen.go │ ├── translational_image_registration_request.gen.go │ ├── vector.gen.go │ ├── video_processor.gen.go │ ├── video_processor_cadence.gen.go │ ├── video_processor_frame_rate_cadence.gen.go │ ├── video_processor_request_processing_options.gen.go │ ├── video_processor_time_interval_cadence.gen.go │ ├── vision.go │ └── vision_test.go └── webkit │ ├── aliastypes.gen.go │ ├── back_forward_list.gen.go │ ├── back_forward_list_item.gen.go │ ├── content_rule_list.gen.go │ ├── content_rule_list_store.gen.go │ ├── content_world.gen.go │ ├── doc.gen.go │ ├── dom_abstract_view.gen.go │ ├── dom_attr.gen.go │ ├── dom_blob.gen.go │ ├── dom_character_data.gen.go │ ├── dom_comment.gen.go │ ├── dom_counter.gen.go │ ├── dom_document.gen.go │ ├── dom_document_fragment.gen.go │ ├── dom_document_type.gen.go │ ├── dom_element.gen.go │ ├── dom_entity.gen.go │ ├── dom_entity_reference.gen.go │ ├── dom_event.gen.go │ ├── dom_event_listener_protocol.gen.go │ ├── dom_event_target_protocol.gen.go │ ├── dom_file.gen.go │ ├── dom_file_list.gen.go │ ├── dom_implementation.gen.go │ ├── dom_keyboard_event.gen.go │ ├── dom_media_list.gen.go │ ├── dom_mouse_event.gen.go │ ├── dom_mutation_event.gen.go │ ├── dom_named_node_map.gen.go │ ├── dom_node.gen.go │ ├── dom_node_filter_protocol.gen.go │ ├── dom_node_iterator.gen.go │ ├── dom_node_list.gen.go │ ├── dom_object.gen.go │ ├── dom_overflow_event.gen.go │ ├── dom_processing_instruction.gen.go │ ├── dom_progress_event.gen.go │ ├── dom_range.gen.go │ ├── dom_rect.gen.go │ ├── dom_style_sheet.gen.go │ ├── dom_style_sheet_list.gen.go │ ├── dom_text.gen.go │ ├── dom_tree_walker.gen.go │ ├── dom_wheel_event.gen.go │ ├── domcdata_section.gen.go │ ├── domcss_charset_rule.gen.go │ ├── domcss_font_face_rule.gen.go │ ├── domcss_import_rule.gen.go │ ├── domcss_media_rule.gen.go │ ├── domcss_page_rule.gen.go │ ├── domcss_primitive_value.gen.go │ ├── domcss_rule.gen.go │ ├── domcss_rule_list.gen.go │ ├── domcss_style_declaration.gen.go │ ├── domcss_style_rule.gen.go │ ├── domcss_style_sheet.gen.go │ ├── domcss_unknown_rule.gen.go │ ├── domcss_value.gen.go │ ├── domcss_value_list.gen.go │ ├── domhtml_anchor_element.gen.go │ ├── domhtml_applet_element.gen.go │ ├── domhtml_area_element.gen.go │ ├── domhtml_base_element.gen.go │ ├── domhtml_base_font_element.gen.go │ ├── domhtml_body_element.gen.go │ ├── domhtml_button_element.gen.go │ ├── domhtml_collection.gen.go │ ├── domhtml_directory_element.gen.go │ ├── domhtml_div_element.gen.go │ ├── domhtml_document.gen.go │ ├── domhtml_element.gen.go │ ├── domhtml_embed_element.gen.go │ ├── domhtml_field_set_element.gen.go │ ├── domhtml_font_element.gen.go │ ├── domhtml_form_element.gen.go │ ├── domhtml_frame_element.gen.go │ ├── domhtml_frame_set_element.gen.go │ ├── domhtml_head_element.gen.go │ ├── domhtml_heading_element.gen.go │ ├── domhtml_html_element.gen.go │ ├── domhtml_image_element.gen.go │ ├── domhtml_input_element.gen.go │ ├── domhtml_label_element.gen.go │ ├── domhtml_legend_element.gen.go │ ├── domhtml_link_element.gen.go │ ├── domhtml_map_element.gen.go │ ├── domhtml_marquee_element.gen.go │ ├── domhtml_menu_element.gen.go │ ├── domhtml_meta_element.gen.go │ ├── domhtml_mod_element.gen.go │ ├── domhtml_object_element.gen.go │ ├── domhtml_opt_group_element.gen.go │ ├── domhtml_option_element.gen.go │ ├── domhtml_options_collection.gen.go │ ├── domhtml_paragraph_element.gen.go │ ├── domhtml_param_element.gen.go │ ├── domhtml_pre_element.gen.go │ ├── domhtml_quote_element.gen.go │ ├── domhtml_script_element.gen.go │ ├── domhtml_select_element.gen.go │ ├── domhtml_style_element.gen.go │ ├── domhtml_table_caption_element.gen.go │ ├── domhtml_table_cell_element.gen.go │ ├── domhtml_table_col_element.gen.go │ ├── domhtml_table_element.gen.go │ ├── domhtml_table_row_element.gen.go │ ├── domhtml_table_section_element.gen.go │ ├── domhtml_text_area_element.gen.go │ ├── domhtml_title_element.gen.go │ ├── domhtmlbr_element.gen.go │ ├── domhtmld_list_element.gen.go │ ├── domhtmlhr_element.gen.go │ ├── domhtmli_frame_element.gen.go │ ├── domhtmlli_element.gen.go │ ├── domhtmlo_list_element.gen.go │ ├── domhtmlu_list_element.gen.go │ ├── domrgb_color.gen.go │ ├── domui_event.gen.go │ ├── domx_path_expression.gen.go │ ├── domx_path_ns_resolver_protocol.gen.go │ ├── domx_path_result.gen.go │ ├── download.gen.go │ ├── download_delegate.gen.go │ ├── enumtypes.gen.go │ ├── find_configuration.gen.go │ ├── find_result.gen.go │ ├── frame_info.gen.go │ ├── http_cookie_store.gen.go │ ├── http_cookie_store_observer_protocol.gen.go │ ├── navigation.gen.go │ ├── navigation_action.gen.go │ ├── navigation_delegate.gen.go │ ├── navigation_response.gen.go │ ├── open_panel_parameters.gen.go │ ├── pdf_configuration.gen.go │ ├── preferences.gen.go │ ├── process_pool.gen.go │ ├── protocols.gen.m │ ├── script_message.gen.go │ ├── script_message_handler_protocol.gen.go │ ├── script_message_handler_with_reply_protocol.gen.go │ ├── security_origin.gen.go │ ├── snapshot_configuration.gen.go │ ├── ui_delegate.gen.go │ ├── url_scheme_handler_protocol.gen.go │ ├── url_scheme_task_protocol.gen.go │ ├── user_content_controller.gen.go │ ├── user_script.gen.go │ ├── web_archive.gen.go │ ├── web_back_forward_list.gen.go │ ├── web_data_source.gen.go │ ├── web_document_representation_protocol.gen.go │ ├── web_document_searching_protocol.gen.go │ ├── web_document_text_protocol.gen.go │ ├── web_document_view_protocol.gen.go │ ├── web_download.gen.go │ ├── web_download_delegate.gen.go │ ├── web_editing_delegate.gen.go │ ├── web_frame.gen.go │ ├── web_frame_load_delegate.gen.go │ ├── web_frame_view.gen.go │ ├── web_history.gen.go │ ├── web_history_item.gen.go │ ├── web_open_panel_result_listener_protocol.gen.go │ ├── web_plug_in_view_factory_protocol.gen.go │ ├── web_policy_decision_listener_protocol.gen.go │ ├── web_policy_delegate.gen.go │ ├── web_preferences.gen.go │ ├── web_resource.gen.go │ ├── web_resource_load_delegate.gen.go │ ├── web_script_object.gen.go │ ├── web_ui_delegate.gen.go │ ├── web_undefined.gen.go │ ├── web_view.gen.go │ ├── web_view_configuration.gen.go │ ├── webkit.go │ ├── webkit_custom.go │ ├── webkit_test.go │ ├── webpage_preferences.gen.go │ ├── website_data_record.gen.go │ ├── website_data_store.gen.go │ └── window_features.gen.go └── objc ├── LICENSE ├── base.go ├── base.m ├── base_test.go ├── block.go ├── block.m ├── block_test.go ├── call.go ├── class.go ├── class.m ├── class_test.go ├── doc.go ├── ffi ├── ffi.go ├── ffi.m └── ffi_test.go ├── misc.go ├── objc_cgo.go ├── object.go ├── object.m ├── object_test.go ├── protocol.go ├── protocol.m ├── protocol_test.go ├── runtime_utils.go ├── runtime_utils.m ├── runtime_utils_test.go ├── sync_cache.go ├── type_convertion.go ├── type_convertion.h ├── type_convertion.m ├── type_convertion_test.go ├── type_def.go ├── type_encodings.go ├── type_encodings_test.go ├── userclass.go └── userclass_test.go /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: darwinkitdev -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | on: [pull_request] 2 | name: Test 3 | jobs: 4 | test: 5 | strategy: 6 | matrix: 7 | go-version: [oldstable] 8 | os: [macos-11, macos-12, macos-13] 9 | runs-on: ${{ matrix.os }} 10 | steps: 11 | - name: Install Go 12 | uses: actions/setup-go@v4 13 | with: 14 | go-version: ${{ matrix.go-version }} 15 | - name: Checkout code 16 | uses: actions/checkout@v3 17 | - name: Test 18 | run: | 19 | TAGS=${{ matrix.os }} 20 | TAGS=${TAGS//-} # remove dash 21 | go test -tags $TAGS -v ./... 22 | - name: Build helloworld 23 | run: | 24 | TAGS=${{ matrix.os }} 25 | TAGS=${TAGS//-} # remove dash 26 | go build -tags $TAGS ./macos/_examples/helloworld -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /_local 3 | /generate/symbols.zip 4 | /generate/symbols 5 | /macos/_examples/form/form 6 | /macos/_examples/largetype/largetype 7 | /macos/_examples/layout/layout 8 | /macos/_examples/menu/menu 9 | /macos/_examples/notification/notification 10 | /macos/_examples/opengl/opengl-example 11 | /macos/_examples/pomodoro/pomodoro 12 | /macos/_examples/subclass/subclass 13 | /macos/_examples/tabview/tabview 14 | /macos/_examples/webshot/webshot 15 | /macos/_examples/webview/webview 16 | /macos/_examples/widgets/widgets 17 | /macos/_examples/workspace/workspace 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Jeff Lindsay 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: generate test clobber example examples 2 | 3 | GOEXE ?= go 4 | EXAMPLES := $(wildcard macos/_examples/*) 5 | 6 | export CGO_LDFLAGS="-Wl,-no_warn_duplicate_libraries" 7 | 8 | generate: 9 | $(GOEXE) generate ./... 10 | 11 | test: 12 | $(GOEXE) test ./... 13 | 14 | clobber: 15 | $(GOEXE) run ./generate/tools/clobbergen.go ./macos 16 | 17 | example: 18 | $(GOEXE) run ./macos/_examples/helloworld/main.go 19 | 20 | examples: _local/bin 21 | @for dir in $(EXAMPLES); do \ 22 | $(GOEXE) build -o ./_local/bin/$$(basename $$dir) ./$$dir; \ 23 | done 24 | 25 | _local/bin: 26 | mkdir -p _local/bin 27 | 28 | generate/symbols.zip: 29 | cd generate && wget https://github.com/mactypes/symbolsdb/releases/download/1.1/symbols.zip -------------------------------------------------------------------------------- /darwinkit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progrium/darwinkit/61b9e31a12fa033c8f3441e596e5237d396ed960/darwinkit.png -------------------------------------------------------------------------------- /dispatch/dispatch.go: -------------------------------------------------------------------------------- 1 | // Execute code concurrently on multicore hardware by submitting work to dispatch queues managed by the system. 2 | // 3 | // [Apple Documentation] 4 | // 5 | // [AppleDocumentation]: https://developer.apple.com/documentation/dispatch?language=objc 6 | package dispatch 7 | 8 | // #cgo CFLAGS: -x objective-c 9 | import "C" 10 | import "unsafe" 11 | 12 | type Data unsafe.Pointer 13 | -------------------------------------------------------------------------------- /dispatch/queue.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | #include "_cgo_export.h" 5 | #import 6 | 7 | 8 | void* Dispatch_Get_Main_Queue() { 9 | return dispatch_get_main_queue(); 10 | } 11 | 12 | void* Dispatch_Get_Global_Queue(intptr_t identifier, uintptr_t flags) { 13 | return dispatch_get_global_queue(identifier, flags); 14 | } 15 | 16 | void Dispatch_Retain(void* queue) { 17 | dispatch_retain((dispatch_object_t)queue); 18 | } 19 | 20 | void Dispatch_Release(void* queue) { 21 | dispatch_release((dispatch_object_t)queue); 22 | } 23 | 24 | void Dispatch_Async(void* queue, uintptr_t task) { 25 | dispatch_async((dispatch_queue_t)queue, ^{ 26 | runQueueTask(task); 27 | }); 28 | } 29 | 30 | void Dispatch_Sync(void* queue, uintptr_t task) { 31 | dispatch_sync((dispatch_queue_t)queue, ^{ 32 | runQueueTask(task); 33 | }); 34 | } -------------------------------------------------------------------------------- /generate/codegen/aliasinfo.go: -------------------------------------------------------------------------------- 1 | package codegen 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/modules" 5 | "github.com/progrium/darwinkit/generate/typing" 6 | ) 7 | 8 | // AliasInfo enum type and values 9 | type AliasInfo struct { 10 | typing.AliasType 11 | Description string 12 | DocURL string 13 | Values []*EnumValue 14 | } 15 | 16 | // IsString return if is a string type Enum 17 | func (e *AliasInfo) IsString() bool { 18 | t := e.Type 19 | for { 20 | at, ok := t.(*typing.AliasType) 21 | if !ok { 22 | break 23 | } 24 | t = at.Type 25 | } 26 | _, ok := t.(*typing.StringType) 27 | return ok 28 | } 29 | 30 | // EnumValue the enum name and value 31 | type EnumValue struct { 32 | Name string // the objc enum name 33 | GoName string // the go name of enum 34 | Value string // the value(amd64 arch) 35 | Arm64Value string // the value for arm64. if is empty, use Value 36 | Module *modules.Module // the module enum value defined in 37 | } 38 | -------------------------------------------------------------------------------- /generate/codegen/codegen.go: -------------------------------------------------------------------------------- 1 | package codegen 2 | 3 | import "github.com/progrium/darwinkit/internal/set" 4 | 5 | var AutoGeneratedMark = "// Code generated by DarwinKit. DO NOT EDIT.\n" 6 | 7 | // CodeGen is interface for Class/Protocol code Gen 8 | type CodeGen interface { 9 | Init() 10 | Copy() CodeGen // I do NOT understand why this exists 11 | GoImports() set.Set[string] 12 | WriteGoCode(cw *CodeWriter) 13 | } 14 | -------------------------------------------------------------------------------- /generate/codegen/codewriter.go: -------------------------------------------------------------------------------- 1 | package codegen 2 | 3 | import ( 4 | "fmt" 5 | "io" 6 | ) 7 | 8 | // CodeWriter write code 9 | type CodeWriter struct { 10 | Writer io.Writer 11 | indent int 12 | IndentStr string 13 | } 14 | 15 | // Indent add more indent from now 16 | func (c *CodeWriter) Indent() { 17 | c.indent++ 18 | } 19 | 20 | // UnIndent reduce indent from now 21 | func (c *CodeWriter) UnIndent() { 22 | c.indent-- 23 | if c.indent < 0 { 24 | panic("indent less than zero") 25 | } 26 | } 27 | 28 | // WriteLine write one line code 29 | func (c *CodeWriter) WriteLineF(format string, values ...any) { 30 | c.WriteLine(fmt.Sprintf(format, values...)) 31 | } 32 | 33 | // WriteLine write one line code 34 | func (c *CodeWriter) WriteLine(line string) { 35 | for i := 0; i < c.indent; i++ { 36 | c.Writer.Write([]byte(c.IndentStr)) 37 | } 38 | c.Writer.Write([]byte(line)) 39 | c.Writer.Write([]byte("\n")) 40 | } 41 | 42 | // WriteLines write multi lines code 43 | func (c *CodeWriter) WriteLines(lines []string) { 44 | for _, line := range lines { 45 | c.WriteLine(line) 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /generate/declparse/ast_test.go: -------------------------------------------------------------------------------- 1 | package declparse 2 | 3 | import ( 4 | "regexp" 5 | "testing" 6 | ) 7 | 8 | func TestAST_Strings(t *testing.T) { 9 | for _, tt := range tests { 10 | if tt.ParseOnly { 11 | continue 12 | } 13 | t.Run(tt.s, func(t *testing.T) { 14 | got := normalizeWhitespace(tt.n.String()) 15 | want := normalizeWhitespace(tt.s) 16 | if got != want { 17 | t.Errorf("String()\n got: %s\n want: %s", got, want) 18 | } 19 | }) 20 | } 21 | } 22 | 23 | func normalizeWhitespace(s string) string { 24 | space := regexp.MustCompile(`\s+`) 25 | return space.ReplaceAllString(s, " ") 26 | } 27 | -------------------------------------------------------------------------------- /generate/declparse/keywords/init.go: -------------------------------------------------------------------------------- 1 | package keywords 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/declparse/lexer" 5 | ) 6 | 7 | func init() { 8 | // Loads keyword tokens into lexer 9 | lexer.LoadTokenMap(tokenMap) 10 | } 11 | 12 | const ( 13 | // Starts the keywords with an offset from the built in tokens 14 | startKeywords lexer.Token = iota + 1000 15 | 16 | PROPERTY 17 | INTERFACE 18 | PROTOCOL 19 | 20 | ENUM 21 | CONST 22 | TYPEDEF 23 | STRUCT 24 | 25 | endKeywords 26 | ) 27 | 28 | var tokenMap = map[lexer.Token]string{ 29 | PROPERTY: "@property", 30 | INTERFACE: "@interface", 31 | PROTOCOL: "@protocol", 32 | ENUM: "enum", 33 | CONST: "const", 34 | TYPEDEF: "typedef", 35 | STRUCT: "struct", 36 | } 37 | 38 | // IsKeyword returns true if the token is a keyword. 39 | func IsKeyword(tok lexer.Token) bool { 40 | return tok > startKeywords && tok < endKeywords 41 | } 42 | -------------------------------------------------------------------------------- /generate/declparse/parser_function.go: -------------------------------------------------------------------------------- 1 | package declparse 2 | 3 | func parseFunction(p *Parser) (next stateFn, node Node, err error) { 4 | typ, err := p.expectType(false) 5 | if err != nil { 6 | return nil, nil, err 7 | } 8 | 9 | decl, err := p.expectFuncType(typ, true) 10 | if err != nil { 11 | return nil, nil, err 12 | } 13 | return nil, decl, nil 14 | } 15 | -------------------------------------------------------------------------------- /generate/declparse/parser_interface.go: -------------------------------------------------------------------------------- 1 | package declparse 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/declparse/keywords" 5 | "github.com/progrium/darwinkit/generate/declparse/lexer" 6 | ) 7 | 8 | func parseInterface(p *Parser) (next stateFn, node Node, err error) { 9 | decl := &InterfaceDecl{} 10 | 11 | if err := p.expectToken(keywords.INTERFACE); err != nil { 12 | return nil, nil, err 13 | } 14 | 15 | decl.Name, err = p.expectIdent() 16 | if err != nil { 17 | return nil, nil, err 18 | } 19 | 20 | // type params 21 | if tok, _, _ := p.tb.Scan(); tok == lexer.LT { 22 | p.tb.OneRuneOperators(true) 23 | 24 | for { 25 | typ, err := p.expectType(false) 26 | if err != nil { 27 | return nil, nil, err 28 | } 29 | decl.Params = append(decl.Params, *typ) 30 | 31 | if tok, _, _ := p.tb.Scan(); tok != lexer.COMMA { 32 | p.tb.Unscan() 33 | break 34 | } 35 | } 36 | 37 | if err := p.expectToken(lexer.GT); err != nil { 38 | return nil, nil, err 39 | } 40 | 41 | p.tb.OneRuneOperators(false) 42 | } else { 43 | p.tb.Unscan() 44 | } 45 | 46 | if tok, _, _ := p.tb.Scan(); tok == lexer.COLON { 47 | if decl.SuperName, err = p.expectIdent(); err != nil { 48 | return nil, nil, err 49 | } 50 | } else { 51 | p.tb.Unscan() 52 | } 53 | 54 | return nil, decl, nil 55 | } 56 | -------------------------------------------------------------------------------- /generate/declparse/parser_protocol.go: -------------------------------------------------------------------------------- 1 | package declparse 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/declparse/keywords" 5 | "github.com/progrium/darwinkit/generate/declparse/lexer" 6 | ) 7 | 8 | func parseProtocol(p *Parser) (next stateFn, node Node, err error) { 9 | decl := &ProtocolDecl{} 10 | 11 | if err := p.expectToken(keywords.PROTOCOL); err != nil { 12 | return nil, nil, err 13 | } 14 | 15 | decl.Name, err = p.expectIdent() 16 | if err != nil { 17 | return nil, nil, err 18 | } 19 | 20 | if tok, _, _ := p.tb.Scan(); tok == lexer.COLON { 21 | if decl.SuperName, err = p.expectIdent(); err != nil { 22 | return nil, nil, err 23 | } 24 | } else { 25 | p.tb.Unscan() 26 | } 27 | 28 | return nil, decl, nil 29 | } 30 | -------------------------------------------------------------------------------- /generate/declparse/parser_test.go: -------------------------------------------------------------------------------- 1 | package declparse 2 | 3 | import ( 4 | "log" 5 | "reflect" 6 | "strings" 7 | "testing" 8 | 9 | "github.com/go-test/deep" 10 | ) 11 | 12 | func TestParser(t *testing.T) { 13 | deep.NilMapsAreEmpty = true 14 | 15 | for _, tt := range tests { 16 | t.Run(tt.s, func(t *testing.T) { 17 | p := NewStringParser(tt.s) 18 | p.Hint = tt.Hint 19 | got, err := p.Parse() 20 | if err != nil { 21 | t.Fatal("parse:", err) 22 | } 23 | if diff := deep.Equal(got, normalizeStmntNode(tt.n)); diff != nil { 24 | t.Error("diff:", diff) 25 | } 26 | }) 27 | } 28 | } 29 | 30 | // easier to make everything a statement 31 | 32 | func normalizeStmntString(s string) string { 33 | return strings.TrimRight(s, ";") + ";" 34 | } 35 | 36 | func normalizeStmntNode(n Node) *Statement { 37 | stmt := &Statement{} 38 | switch v := n.(type) { 39 | case *Statement: 40 | return v 41 | case *InterfaceDecl: 42 | stmt.Interface = v 43 | case *PropertyDecl: 44 | stmt.Property = v 45 | case *MethodDecl: 46 | stmt.Method = v 47 | case *VariableDecl: 48 | stmt.Variable = v 49 | case *ProtocolDecl: 50 | stmt.Protocol = v 51 | case *FunctionDecl: 52 | stmt.Function = v 53 | default: 54 | log.Fatal("bad node type:", reflect.TypeOf(n)) 55 | } 56 | return stmt 57 | } 58 | -------------------------------------------------------------------------------- /generate/modules/enums/README.md: -------------------------------------------------------------------------------- 1 | This directory contains value dumps of enums and constants generated by running: 2 | 3 | ``` 4 | go run ./generate/tools/enumexport.go 5 | ``` 6 | 7 | This will iterate over modules defined in the `modules` package and write code 8 | to print values for enums and constants that are either integers, strings, or 9 | floats. This is a separate process from bindings code generation and should be 10 | done when a new framework is added. 11 | 12 | It should ideally be done on a x86 Mac running the latest version of macOS so 13 | it can capture all possible values. Files suffixed with _arm64 are produced by 14 | hand by running enumexport for each framework on an arm Mac, then diffing against 15 | the base x86 version of the file. They should only include the constants that 16 | are different on arm. 17 | 18 | This data is used by code generation as a raw repository of values to create 19 | Go code for constants and enums. -------------------------------------------------------------------------------- /generate/modules/enums/macos/appkit_arm64: -------------------------------------------------------------------------------- 1 | NSImageResizingModeTile 0 2 | NSImageResizingModeStretch 1 3 | NSTextAlignmentRight 2 4 | NSTextAlignmentCenter 1 5 | -------------------------------------------------------------------------------- /generate/modules/enums/macos/avkit: -------------------------------------------------------------------------------- 1 | AVCaptureViewControlsStyleDefault 0 2 | AVCaptureViewControlsStyleFloating 1 3 | AVCaptureViewControlsStyleInline 0 4 | AVCaptureViewControlsStyleInlineDeviceSelection 2 5 | AVPlayerViewControlsStyleDefault 1 6 | AVPlayerViewControlsStyleFloating 2 7 | AVPlayerViewControlsStyleInline 1 8 | AVPlayerViewControlsStyleMinimal 3 9 | AVPlayerViewControlsStyleNone 0 10 | AVPlayerViewTrimCancelButton 1 11 | AVPlayerViewTrimOKButton 0 12 | AVRoutePickerViewButtonStateActive 2 13 | AVRoutePickerViewButtonStateActiveHighlighted 3 14 | AVRoutePickerViewButtonStateNormal 0 15 | AVRoutePickerViewButtonStateNormalHighlighted 1 16 | -------------------------------------------------------------------------------- /generate/modules/enums/macos/contactsui: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progrium/darwinkit/61b9e31a12fa033c8f3441e596e5237d396ed960/generate/modules/enums/macos/contactsui -------------------------------------------------------------------------------- /generate/modules/enums/macos/coreaudio: -------------------------------------------------------------------------------- 1 | kAudioHardwarePowerHintFavorSavingPower 1 2 | kAudioHardwarePowerHintNone 0 3 | kAudioLevelControlTranferFunction10Over1 13 4 | kAudioLevelControlTranferFunction11Over1 14 5 | kAudioLevelControlTranferFunction12Over1 15 6 | kAudioLevelControlTranferFunction1Over2 2 7 | kAudioLevelControlTranferFunction1Over3 1 8 | kAudioLevelControlTranferFunction2Over1 5 9 | kAudioLevelControlTranferFunction3Over1 6 10 | kAudioLevelControlTranferFunction3Over2 4 11 | kAudioLevelControlTranferFunction3Over4 3 12 | kAudioLevelControlTranferFunction4Over1 7 13 | kAudioLevelControlTranferFunction5Over1 8 14 | kAudioLevelControlTranferFunction6Over1 9 15 | kAudioLevelControlTranferFunction7Over1 10 16 | kAudioLevelControlTranferFunction8Over1 11 17 | kAudioLevelControlTranferFunction9Over1 12 18 | kAudioLevelControlTranferFunctionLinear 0 19 | -------------------------------------------------------------------------------- /generate/modules/enums/macos/coreaudiokit: -------------------------------------------------------------------------------- 1 | AUViewParametersDisplayFlag 4 2 | AUViewPropertiesDisplayFlag 2 3 | AUViewTitleDisplayFlag 1 4 | -------------------------------------------------------------------------------- /generate/modules/enums/macos/corespotlight: -------------------------------------------------------------------------------- 1 | CSIndexErrorCodeIndexUnavailableError -1000 2 | CSIndexErrorCodeIndexingUnsupported -1005 3 | CSIndexErrorCodeInvalidClientStateError -1002 4 | CSIndexErrorCodeInvalidItemError -1001 5 | CSIndexErrorCodeQuotaExceeded -1004 6 | CSIndexErrorCodeRemoteConnectionError -1003 7 | CSIndexErrorCodeUnknownError -1 8 | CSSearchQueryErrorCodeCancelled -2003 9 | CSSearchQueryErrorCodeIndexUnreachable -2001 10 | CSSearchQueryErrorCodeInvalidQuery -2002 11 | CSSearchQueryErrorCodeUnknown -2000 12 | CoreSpotlightVersionString 6691122304 13 | CSIndexErrorDomain CSIndexErrorDomain 14 | CSMailboxArchive mailbox.archive 15 | CSMailboxDrafts mailbox.drafts 16 | CSMailboxInbox mailbox.inbox 17 | CSMailboxJunk mailbox.junk 18 | CSMailboxSent mailbox.sent 19 | CSMailboxTrash mailbox.trash 20 | CSQueryContinuationActionType com.apple.corespotlightquerycontinuation 21 | CSSearchQueryErrorDomain CSSearchQueryErrorDomain 22 | CSSearchQueryString kCSSearchQueryString 23 | CSSearchableItemActionType com.apple.corespotlightitem 24 | CSSearchableItemActivityIdentifier kCSSearchableItemActivityIdentifier 25 | CoreSpotlightVersionNumber 2274.229980 26 | -------------------------------------------------------------------------------- /generate/modules/enums/macos/gameplaykit: -------------------------------------------------------------------------------- 1 | GKGameModelMaxScore 16777216 2 | GKGameModelMinScore -16777216 3 | GKMeshGraphTriangulationModeCenters 2 4 | GKMeshGraphTriangulationModeEdgeMidpoints 4 5 | GKMeshGraphTriangulationModeVertices 1 6 | GKRTreeSplitStrategyHalve 0 7 | GKRTreeSplitStrategyLinear 1 8 | GKRTreeSplitStrategyQuadratic 2 9 | GKRTreeSplitStrategyReduceOverlap 3 10 | -------------------------------------------------------------------------------- /generate/modules/enums/macos/metalkit: -------------------------------------------------------------------------------- 1 | MTKModelErrorDomain MTKModelErrorDomain 2 | MTKModelErrorKey MTKModelErrorKey 3 | MTKTextureLoaderCubeLayoutVertical MTKTextureLoaderCubeLayoutVertical 4 | MTKTextureLoaderErrorDomain MTKTextureLoaderErrorDomain 5 | MTKTextureLoaderErrorKey MTKTextureLoaderErrorKey 6 | MTKTextureLoaderOptionAllocateMipmaps MTKTextureLoaderOptionAllocateMipmaps 7 | MTKTextureLoaderOptionCubeLayout MTKTextureLoaderOptionCubeLayout 8 | MTKTextureLoaderOptionGenerateMipmaps MTKTextureLoaderOptionGenerateMipmaps 9 | MTKTextureLoaderOptionOrigin MTKTextureLoaderOptionOrigin 10 | MTKTextureLoaderOptionSRGB MTKTextureLoaderOptionSRGB 11 | MTKTextureLoaderOptionTextureCPUCacheMode MTKTextureLoaderOptionTextureCPUCacheMode 12 | MTKTextureLoaderOptionTextureStorageMode MTKTextureLoaderOptionTextureStorageMode 13 | MTKTextureLoaderOptionTextureUsage MTKTextureLoaderOptionTextureUsage 14 | MTKTextureLoaderOriginBottomLeft MTKTextureLoaderOriginBottomLeft 15 | MTKTextureLoaderOriginFlippedVertically MTKTextureLoaderOriginFlippedVertically 16 | MTKTextureLoaderOriginTopLeft MTKTextureLoaderOriginTopLeft 17 | -------------------------------------------------------------------------------- /generate/modules/enums/macos/securityinterface: -------------------------------------------------------------------------------- 1 | SFAuthorizationStartupState 0 2 | SFAuthorizationViewInProgressState 2 3 | SFAuthorizationViewLockedState 1 4 | SFAuthorizationViewUnlockedState 3 5 | SFButtonTypeBack 0 6 | SFButtonTypeCancel 0 7 | SFButtonTypeLogin 1 8 | SFButtonTypeOK 1 9 | SFViewTypeCredentials 1 10 | SFViewTypeIdentityAndCredentials 0 11 | SFAuthorizationPluginViewUserNameKey UserName 12 | SFAuthorizationPluginViewUserShortNameKey UserShortName 13 | SFCertificateViewDisclosureStateDidChange SFCertificateViewDisclosureStateDidChange 14 | SFDisplayViewException Mechanism Invoke Error 15 | -------------------------------------------------------------------------------- /generate/modules/enums/macos/uniformtypeidentifiers: -------------------------------------------------------------------------------- 1 | UTTagClassFilenameExtension public.filename-extension 2 | UTTagClassMIMEType public.mime-type 3 | -------------------------------------------------------------------------------- /generate/modules/enums/macos/uti: -------------------------------------------------------------------------------- 1 | UTTagClassFilenameExtension public.filename-extension 2 | UTTagClassMIMEType public.mime-type 3 | -------------------------------------------------------------------------------- /generate/tools/clobbergen.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | 3 | package main 4 | 5 | import ( 6 | "os" 7 | 8 | "github.com/progrium/darwinkit/generate" 9 | ) 10 | 11 | // go run ./generate/tools/clobbergen.go [dir, ex: ./macos/appkit] 12 | func main() { 13 | generate.RemoveGeneratedCode(os.Args[1]) 14 | } 15 | -------------------------------------------------------------------------------- /generate/tools/constant.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | 3 | package main 4 | 5 | import ( 6 | "flag" 7 | "fmt" 8 | 9 | "github.com/progrium/darwinkit/generate/modules" 10 | ) 11 | 12 | // go run ./generate/tools/constant.go 13 | func main() { 14 | flag.Parse() 15 | c := modules.LookupConstant(flag.Arg(0), flag.Arg(1), flag.Arg(2)) 16 | if c != nil { 17 | if c.ArmValue != "" { 18 | fmt.Println("Value[amd64]:", c.Value) 19 | fmt.Println("Value[arm64]:", c.ArmValue) 20 | } else { 21 | fmt.Println("Value:", c.Value) 22 | } 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /generate/tools/genmod.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | 3 | package main 4 | 5 | import ( 6 | "fmt" 7 | "log" 8 | "os" 9 | "path/filepath" 10 | 11 | "github.com/progrium/darwinkit/generate" 12 | "github.com/progrium/darwinkit/internal/set" 13 | ) 14 | 15 | // TODO: replace with env var 16 | const TargetPlatform = "macos" 17 | 18 | // TODO: replace with autodetect+env var 19 | const TargetVersion = 12 20 | 21 | func main() { 22 | cwd, err := os.Getwd() 23 | if err != nil { 24 | panic(err) 25 | } 26 | 27 | db, err := generate.OpenSymbols("../../generate/symbols.zip") 28 | if err != nil { 29 | log.Fatal(err) 30 | } 31 | defer db.Close() 32 | 33 | fmt.Printf("Generating %s...\n", os.Getenv("GOPACKAGE")) 34 | 35 | // first generate using oldgen (for now) 36 | //oldgen.GenerateModules(filepath.Dir(cwd), []string{os.Getenv("GOPACKAGE")}) 37 | 38 | // then use new generate for enums and others as they come online 39 | gen := generate.Generator{SymbolCache: db} 40 | gen.Generate(TargetPlatform, TargetVersion, filepath.Dir(cwd), os.Getenv("GOPACKAGE"), set.New[string]()) 41 | 42 | } 43 | -------------------------------------------------------------------------------- /generate/tools/imports.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | imports() { 4 | awk '/^import \(/,/\)/ { if ($1 != "import" && $1 != "(" && $1 != ")") print $1 }' $1 | tr -d '"' 5 | } 6 | 7 | for file in $1/*.go; do 8 | if [ -f "$file" ]; then 9 | imports "$file" 10 | fi 11 | done | sort | uniq -------------------------------------------------------------------------------- /generate/tools/lookup.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | 3 | package main 4 | 5 | import ( 6 | "encoding/json" 7 | "fmt" 8 | "log" 9 | "os" 10 | "strings" 11 | 12 | "github.com/progrium/darwinkit/generate" 13 | ) 14 | 15 | // go run ./generate/tools/lookup.go [framework/symbol, ex: appkit/nswindow] 16 | func main() { 17 | db, err := generate.OpenSymbols("./generate/symbols.zip") 18 | if err != nil { 19 | log.Fatal(err) 20 | } 21 | defer db.Close() 22 | 23 | for _, s := range db.AllSymbols() { 24 | if strings.HasPrefix(s.Path, strings.ToLower(os.Args[1])) { 25 | b, err := json.MarshalIndent(s, "", " ") 26 | if err != nil { 27 | log.Fatal(err) 28 | } 29 | fmt.Println(string(b)) 30 | } 31 | 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /generate/tools/regen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | find ./$1 -type f -name "*.gen.go" -exec dirname {} \; | sort -u | xargs -I{} go generate {} -------------------------------------------------------------------------------- /generate/tools/stats.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Generated frameworks:" 4 | find ./macos -type f -name "*.gen.go" -exec dirname {} \; | sort -u | wc -l 5 | echo 6 | echo "Classes/protocols:" 7 | find ./macos -type f ! -name "*_test.go" ! -name "*_structs.go" ! -name "aliastypes.gen.go" ! -name "enumtypes.gen.go" ! -name "doc.gen.go" ! -name "protocols.gen.m" -name "*.gen.go" | wc -l 8 | echo 9 | echo "Methods:" 10 | awk '/type [a-zA-Z0-9_]+ interface {/,/}/' ./macos/*/*.gen.go | grep ')' | wc -l 11 | echo 12 | echo "Enums/constants:" 13 | cat ./macos/*/enumtypes.gen.go | grep -v '^\s*//' | grep -v '^\s*$' | grep -v '[\(\)]' | wc -l 14 | echo 15 | echo "Structs:" 16 | find . -type f -name "*_structs.go" -exec grep '^type' {} + | wc -l 17 | echo -------------------------------------------------------------------------------- /generate/tools/type.go: -------------------------------------------------------------------------------- 1 | //go:build ignore 2 | 3 | package main 4 | 5 | import ( 6 | "encoding/json" 7 | "fmt" 8 | "log" 9 | "os" 10 | "strings" 11 | 12 | "github.com/progrium/darwinkit/generate" 13 | ) 14 | 15 | // go run ./generate/tools/type.go [symbol, ex: nswindow] 16 | func main() { 17 | db, err := generate.OpenSymbols("./generate/symbols.zip") 18 | if err != nil { 19 | log.Fatal(err) 20 | } 21 | defer db.Close() 22 | 23 | s := db.FindTypeSymbol(os.Args[1]) 24 | if s != nil { 25 | b, err := json.MarshalIndent(s, "", " ") 26 | if err != nil { 27 | log.Fatal(err) 28 | } 29 | fmt.Println(string(b)) 30 | } 31 | 32 | for _, s := range db.AllSymbols() { 33 | if strings.EqualFold(os.Args[1], s.Name) { 34 | fmt.Println(s.Path) 35 | } 36 | 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /generate/typing/array_type.go: -------------------------------------------------------------------------------- 1 | package typing 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/modules" 5 | "github.com/progrium/darwinkit/internal/set" 6 | ) 7 | 8 | var _ Type = (*ArrayType)(nil) 9 | 10 | // ArrayType the element should be StringType or ClassType 11 | type ArrayType struct { 12 | Type Type 13 | } 14 | 15 | func (a *ArrayType) GoImports() set.Set[string] { 16 | imports := set.New("github.com/progrium/darwinkit/macos/foundation") 17 | imports.AddSet(a.Type.GoImports()) 18 | return imports 19 | } 20 | 21 | func (a *ArrayType) GoName(currentModule *modules.Module, receiveFromObjc bool) string { 22 | return "[]" + a.Type.GoName(currentModule, receiveFromObjc) 23 | } 24 | 25 | func (a *ArrayType) ObjcName() string { 26 | return "NSArray*" 27 | } 28 | 29 | func (a *ArrayType) DeclareModule() *modules.Module { 30 | return a.Type.DeclareModule() 31 | } 32 | -------------------------------------------------------------------------------- /generate/typing/data_type.go: -------------------------------------------------------------------------------- 1 | package typing 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/modules" 5 | "github.com/progrium/darwinkit/internal/set" 6 | ) 7 | 8 | var _ Type = (*DataType)(nil) 9 | 10 | // DataType objc binary data type 11 | type DataType struct { 12 | } 13 | 14 | func (d *DataType) GoImports() set.Set[string] { 15 | return nil 16 | } 17 | 18 | func (d *DataType) GoName(currentModule *modules.Module, receiveFromObjc bool) string { 19 | return "[]byte" 20 | } 21 | 22 | func (d *DataType) ObjcName() string { 23 | return "NSData*" 24 | } 25 | 26 | func (d *DataType) DeclareModule() *modules.Module { 27 | return nil 28 | } 29 | -------------------------------------------------------------------------------- /generate/typing/id_type.go: -------------------------------------------------------------------------------- 1 | package typing 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/modules" 5 | "github.com/progrium/darwinkit/internal/set" 6 | ) 7 | 8 | var _ Type = (*IDType)(nil) 9 | 10 | // InstanceType the objc instancetype. 11 | // class method start with alloc or new, instance method start with autorelease,init,retain or self, return instancetype. 12 | type IDType struct { 13 | } 14 | 15 | func (i *IDType) GoImports() set.Set[string] { 16 | return Object.GoImports() 17 | } 18 | 19 | func (i *IDType) GoName(currentModule *modules.Module, receiveFromObjc bool) string { 20 | return Object.GoName(currentModule, receiveFromObjc) 21 | } 22 | 23 | func (i *IDType) ObjcName() string { 24 | return "id" 25 | } 26 | 27 | func (i *IDType) DeclareModule() *modules.Module { 28 | return Object.DeclareModule() 29 | } 30 | -------------------------------------------------------------------------------- /generate/typing/instance_type.go: -------------------------------------------------------------------------------- 1 | package typing 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/modules" 5 | "github.com/progrium/darwinkit/internal/set" 6 | ) 7 | 8 | var _ Type = (*InstanceType)(nil) 9 | 10 | // InstanceType the objc instancetype. 11 | // class method start with alloc or new, instance method start with autorelease,init,retain or self, return instancetype. 12 | type InstanceType struct { 13 | } 14 | 15 | func (i *InstanceType) GoImports() set.Set[string] { 16 | panic("implement me") 17 | } 18 | 19 | func (i *InstanceType) GoName(currentModule *modules.Module, receiveFromObjc bool) string { 20 | panic("implement me") 21 | } 22 | 23 | func (i *InstanceType) ObjcName() string { 24 | panic("implement me") 25 | } 26 | 27 | func (i *InstanceType) DeclareModule() *modules.Module { 28 | return nil 29 | } 30 | -------------------------------------------------------------------------------- /generate/typing/pointer_ref_type.go: -------------------------------------------------------------------------------- 1 | package typing 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/modules" 5 | "github.com/progrium/darwinkit/internal/set" 6 | ) 7 | 8 | var _ Type = (*PointerRefType)(nil) 9 | 10 | // PointerRefType c pointer type def 11 | type PointerRefType struct { 12 | Name string // objc type name 13 | GName string // Go name, usually is objc type name without prefix 'NS' 14 | Module *modules.Module // object-c module 15 | } 16 | 17 | func (c *PointerRefType) GoImports() set.Set[string] { 18 | return set.New("github.com/progrium/darwinkit/macos/" + c.Module.Package) 19 | } 20 | 21 | func (c *PointerRefType) GoName(currentModule *modules.Module, receiveFromObjc bool) string { 22 | return FullGoName(*c.Module, c.GName, *currentModule) 23 | } 24 | 25 | func (c *PointerRefType) ObjcName() string { 26 | return c.Name 27 | } 28 | 29 | func (c *PointerRefType) DeclareModule() *modules.Module { 30 | return c.Module 31 | } 32 | -------------------------------------------------------------------------------- /generate/typing/ref_type.go: -------------------------------------------------------------------------------- 1 | package typing 2 | 3 | import "C" 4 | import ( 5 | "github.com/progrium/darwinkit/generate/modules" 6 | "github.com/progrium/darwinkit/internal/set" 7 | ) 8 | 9 | // for weird struct refs like those ending in "Ref" 10 | type RefType struct { 11 | Name string // c and objc type name 12 | // GName string // the go struct name 13 | // Module *modules.Module // the module 14 | } 15 | 16 | func (s *RefType) GoImports() set.Set[string] { 17 | return set.New("unsafe") 18 | } 19 | 20 | func (s *RefType) GoName(currentModule *modules.Module, receiveFromObjc bool) string { 21 | return "unsafe.Pointer" 22 | } 23 | 24 | func (s *RefType) ObjcName() string { 25 | return s.Name 26 | } 27 | 28 | func (s *RefType) DeclareModule() *modules.Module { 29 | return nil 30 | } 31 | -------------------------------------------------------------------------------- /generate/typing/selector_type.go: -------------------------------------------------------------------------------- 1 | package typing 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/modules" 5 | "github.com/progrium/darwinkit/internal/set" 6 | ) 7 | 8 | var _ Type = (*SelectorType)(nil) 9 | 10 | // SelectorType objc selector type 11 | type SelectorType struct { 12 | } 13 | 14 | func (s *SelectorType) GoImports() set.Set[string] { 15 | return set.New("github.com/progrium/darwinkit/objc") 16 | } 17 | 18 | func (s *SelectorType) GoName(currentModule *modules.Module, receiveFromObjc bool) string { 19 | if currentModule.Package == "objc" { 20 | return "Selector" 21 | } else { 22 | return "objc.Selector" 23 | } 24 | } 25 | 26 | func (s *SelectorType) ObjcName() string { 27 | return "SEL" 28 | } 29 | 30 | func (s *SelectorType) DeclareModule() *modules.Module { 31 | return modules.Get("objc") 32 | } 33 | -------------------------------------------------------------------------------- /generate/typing/string_type.go: -------------------------------------------------------------------------------- 1 | package typing 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/modules" 5 | "github.com/progrium/darwinkit/internal/set" 6 | ) 7 | 8 | var _ Type = (*StringType)(nil) 9 | 10 | // StringType string 11 | type StringType struct { 12 | NeedNil bool // string type need nil value.If set to true, will use foundation.String instread string for generated go code. 13 | } 14 | 15 | func (s *StringType) GoImports() set.Set[string] { 16 | return set.New("github.com/progrium/darwinkit/macos/foundation") 17 | } 18 | 19 | func (s *StringType) GoName(currentModule *modules.Module, receiveFromObjc bool) string { 20 | if s.NeedNil { 21 | return "foundation.String" 22 | } 23 | return "string" 24 | } 25 | 26 | func (s *StringType) ObjcName() string { 27 | return "NSString*" 28 | } 29 | 30 | func (s *StringType) DeclareModule() *modules.Module { 31 | return modules.Get("foundation") 32 | } 33 | -------------------------------------------------------------------------------- /generate/typing/struct_type.go: -------------------------------------------------------------------------------- 1 | package typing 2 | 3 | import "C" 4 | import ( 5 | "github.com/progrium/darwinkit/generate/modules" 6 | "github.com/progrium/darwinkit/internal/set" 7 | ) 8 | 9 | var _ Type = (*StructType)(nil) 10 | 11 | // StructType struct type 12 | type StructType struct { 13 | Name string // c and objc type name 14 | GName string // the go struct name 15 | Module *modules.Module // the module 16 | } 17 | 18 | func (s *StructType) GoImports() set.Set[string] { 19 | return set.New("github.com/progrium/darwinkit/macos/" + s.Module.Package) 20 | } 21 | 22 | func (s *StructType) GoName(currentModule *modules.Module, receiveFromObjc bool) string { 23 | return FullGoName(*s.Module, s.GName, *currentModule) 24 | } 25 | 26 | func (s *StructType) ObjcName() string { 27 | return s.Name 28 | } 29 | 30 | func (s *StructType) DeclareModule() *modules.Module { 31 | return s.Module 32 | } 33 | -------------------------------------------------------------------------------- /generate/typing/type.go: -------------------------------------------------------------------------------- 1 | package typing 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/modules" 5 | "github.com/progrium/darwinkit/internal/set" 6 | "github.com/progrium/darwinkit/internal/stringx" 7 | ) 8 | 9 | // Type interface for all type 10 | type Type interface { 11 | // GoName Go type name 12 | GoName(currentModule *modules.Module, receiveFromObjc bool) string 13 | // ObjcName Objective-c type name 14 | ObjcName() string 15 | 16 | // GoImports go imports for this type 17 | GoImports() set.Set[string] 18 | 19 | // DeclareModule the module of this type. return nil if is a built in type 20 | DeclareModule() *modules.Module 21 | } 22 | 23 | func FullGoName(module modules.Module, name string, currentModule modules.Module) string { 24 | if module.Name == currentModule.Name { 25 | return stringx.Capitalize(name) 26 | } 27 | return module.Package + "." + stringx.Capitalize(name) 28 | } 29 | -------------------------------------------------------------------------------- /generate/typing/void_pointer_type.go: -------------------------------------------------------------------------------- 1 | package typing 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/modules" 5 | "github.com/progrium/darwinkit/internal/set" 6 | ) 7 | 8 | var _ Type = (*VoidPointerType)(nil) 9 | 10 | // VoidPointerType void*/unsafe.Pointer 11 | type VoidPointerType struct { 12 | Name string // objc type name 13 | GName string // Go name, usually is objc type name without prefix 'NS' 14 | } 15 | 16 | func (c *VoidPointerType) GoImports() set.Set[string] { 17 | return set.New("unsafe") 18 | } 19 | 20 | func (c *VoidPointerType) GoName(currentModule *modules.Module, receiveFromObjc bool) string { 21 | return "unsafe.Pointer" 22 | } 23 | 24 | func (c *VoidPointerType) ObjcName() string { 25 | return "void*" 26 | } 27 | 28 | func (c *VoidPointerType) DeclareModule() *modules.Module { 29 | return nil 30 | } 31 | -------------------------------------------------------------------------------- /generate/typing/void_type.go: -------------------------------------------------------------------------------- 1 | package typing 2 | 3 | import ( 4 | "github.com/progrium/darwinkit/generate/modules" 5 | "github.com/progrium/darwinkit/internal/set" 6 | ) 7 | 8 | var _ Type = (*VoidType)(nil) 9 | 10 | // VoidType for void return 11 | type VoidType struct { 12 | } 13 | 14 | func (d *VoidType) GoImports() set.Set[string] { 15 | return nil 16 | } 17 | 18 | func (d *VoidType) GoName(currentModule *modules.Module, receiveFromObjc bool) string { 19 | return "" 20 | } 21 | 22 | func (d *VoidType) ObjcName() string { 23 | return "void" 24 | } 25 | 26 | func (d *VoidType) DeclareModule() *modules.Module { 27 | return nil 28 | } 29 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/progrium/darwinkit 2 | 3 | go 1.18 4 | 5 | require github.com/go-test/deep v1.1.0 -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg= 2 | github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= 3 | -------------------------------------------------------------------------------- /helper/action/action_handler.m: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | #include "_cgo_export.h" 5 | 6 | @interface ActionHandler : NSObject 7 | @property (assign) uintptr_t goID; 8 | @end 9 | 10 | @implementation ActionHandler 11 | 12 | - (IBAction)onAction:(id)sender { 13 | return callAction([self goID], sender); 14 | } 15 | - (void)dealloc { 16 | deleteActionHandle([self goID]); 17 | [super dealloc]; 18 | } 19 | @end 20 | 21 | void* C_NewAction(uintptr_t id) { 22 | ActionHandler* handler = [[ActionHandler alloc] init]; 23 | [handler setGoID:id]; 24 | return handler; 25 | } -------------------------------------------------------------------------------- /internal/assert/assert.go: -------------------------------------------------------------------------------- 1 | package assert 2 | 3 | import ( 4 | "fmt" 5 | "reflect" 6 | "testing" 7 | 8 | "github.com/go-test/deep" 9 | ) 10 | 11 | func Equal(t *testing.T, expected, actual any) { 12 | t.Helper() 13 | if !reflect.DeepEqual(expected, actual) { 14 | t.Fatal(fmt.Sprintf("should be equal but got: %s", deep.Equal(expected, actual))) 15 | } 16 | } 17 | 18 | func NotNil(t *testing.T, v any) { 19 | t.Helper() 20 | if v == nil { 21 | t.Fatal("should not be nil") 22 | } 23 | } 24 | 25 | func False(t *testing.T, v bool) { 26 | t.Helper() 27 | if v { 28 | t.Fatal("should be false") 29 | } 30 | } 31 | 32 | func True(t *testing.T, v bool) { 33 | t.Helper() 34 | if !v { 35 | t.Fatal("should be true") 36 | } 37 | } 38 | 39 | func Panics(t *testing.T, f func()) { 40 | t.Helper() 41 | if !didPanic(f) { 42 | t.Fatal(fmt.Sprintf("func %p should panic", f)) 43 | } 44 | } 45 | 46 | func didPanic(f func()) (didPanic bool) { 47 | didPanic = true 48 | 49 | defer func() { 50 | recover() 51 | }() 52 | 53 | // call the target function 54 | f() 55 | didPanic = false 56 | 57 | return 58 | } 59 | -------------------------------------------------------------------------------- /kernel/types.go: -------------------------------------------------------------------------------- 1 | package kernel 2 | 3 | import "unsafe" 4 | 5 | type Vector_int2 = [2]int32 6 | type Vector_int4 = [4]int32 7 | 8 | type Vector_float2 = [2]float32 9 | type Vector_float3 = [3]float32 10 | type Vector_float4 = [4]float32 11 | 12 | type Vector_double2 = [2]float64 13 | type Vector_double3 = [3]float64 14 | type Vector_double4 = [4]float64 15 | 16 | type Vector_uchar16 = [16]uint8 17 | 18 | // not sure these will work, placeholder for now 19 | type Matrix_float2x2 unsafe.Pointer 20 | type Matrix_float3x3 unsafe.Pointer 21 | type Matrix_float4x4 unsafe.Pointer 22 | type Matrix_float4x3 unsafe.Pointer 23 | type Matrix_double4x4 unsafe.Pointer 24 | 25 | // https://developer.apple.com/documentation/kernel/kernel_data_types?language=objc 26 | // https://github.com/apple/darwin-xnu/blob/main/bsd/sys/_types.h 27 | type Pid = int32 28 | type Gid = uint32 29 | type Uid = uint32 30 | -------------------------------------------------------------------------------- /macos/_examples/screenlock/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "log" 5 | 6 | "github.com/progrium/darwinkit/macos" 7 | "github.com/progrium/darwinkit/macos/appkit" 8 | "github.com/progrium/darwinkit/macos/foundation" 9 | ) 10 | 11 | func main() { 12 | macos.RunApp(func(app appkit.Application, delegate *appkit.ApplicationDelegate) { 13 | dnc := foundation.DistributedNotificationCenter_NotificationCenterForType(foundation.LocalNotificationCenterType) 14 | dnc.AddObserverForNameObjectQueueUsingBlock("com.apple.screenIsLocked", nil, foundation.OperationQueue_MainQueue(), func(notification foundation.Notification) { 15 | log.Println("screen is locked") 16 | }) 17 | dnc.AddObserverForNameObjectQueueUsingBlock("com.apple.screenIsUnlocked", nil, foundation.OperationQueue_MainQueue(), func(notification foundation.Notification) { 18 | log.Println("screen is unlocked") 19 | }) 20 | }) 21 | } 22 | -------------------------------------------------------------------------------- /macos/_examples/webshot/webshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/progrium/darwinkit/61b9e31a12fa033c8f3441e596e5237d396ed960/macos/_examples/webshot/webshot.png -------------------------------------------------------------------------------- /macos/_examples/webview/assets/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

WEBX TEST

8 |
9 | 10 | 23 | -------------------------------------------------------------------------------- /macos/_examples/webview/assets/main.css: -------------------------------------------------------------------------------- 1 | body { 2 | color: crimson; 3 | } -------------------------------------------------------------------------------- /macos/_examples/workspace/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "runtime" 6 | 7 | "github.com/progrium/darwinkit/macos/appkit" 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | func main() { 12 | runtime.LockOSThread() 13 | objc.WithAutoreleasePool(func() { 14 | ws := appkit.Workspace_SharedWorkspace() 15 | 16 | fmt.Println("Running:") 17 | for _, app := range ws.RunningApplications() { 18 | fmt.Println(app.LocalizedName()) 19 | } 20 | 21 | fmt.Println("\nFrontmost:") 22 | frontmost := ws.FrontmostApplication() 23 | fmt.Println(frontmost.LocalizedName()) 24 | }) 25 | } 26 | -------------------------------------------------------------------------------- /macos/_wip/audiotoolbox/audiotoolbox.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package audiotoolbox 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework AudioToolbox 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/_wip/audiotoolbox/audiotoolbox_custom.go: -------------------------------------------------------------------------------- 1 | // WIP 2 | // 3 | // TODO: 4 | // * import cycle dependency on avfaudio and coreaudiokit 5 | package audiotoolbox 6 | -------------------------------------------------------------------------------- /macos/_wip/audiotoolbox/audiotoolbox_test.go: -------------------------------------------------------------------------------- 1 | package audiotoolbox 2 | 3 | import "testing" 4 | 5 | func TestAudioToolboxValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/_wip/avfaudio/avfaudio.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package avfaudio 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework AVFAudio 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/_wip/avfaudio/avfaudio_custom.go: -------------------------------------------------------------------------------- 1 | // WIP 2 | // 3 | // TODO: 4 | // * circular dependency on audiotoolbox 5 | package avfaudio 6 | -------------------------------------------------------------------------------- /macos/_wip/avfaudio/avfaudio_test.go: -------------------------------------------------------------------------------- 1 | package avfaudio 2 | 3 | import "testing" 4 | 5 | func TestAVFAudioValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/_wip/coreaudiokit/coreaudiokit.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package coreaudiokit 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreAudioKit 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/_wip/coreaudiokit/coreaudiokit_custom.go: -------------------------------------------------------------------------------- 1 | // WIP 2 | // 3 | // TODO: 4 | // * circular dependency on audiotoolbox 5 | package coreaudiokit 6 | -------------------------------------------------------------------------------- /macos/_wip/coreaudiokit/coreaudiokit_test.go: -------------------------------------------------------------------------------- 1 | package coreaudiokit 2 | 3 | import "testing" 4 | 5 | func TestCoreAudioKitValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/_wip/gameplaykit/gameplaykit.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package gameplaykit 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework GameplayKit 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/_wip/gameplaykit/gameplaykit_custom.go: -------------------------------------------------------------------------------- 1 | // WIP 2 | // 3 | // TODO: 4 | // * circular dependency on scenekit AND spritekit 5 | package gameplaykit 6 | -------------------------------------------------------------------------------- /macos/_wip/gameplaykit/gameplaykit_structs.go: -------------------------------------------------------------------------------- 1 | package gameplaykit 2 | 3 | // The definition of an axis-aligned rectangular bounding volume addressed by the tree. [Full Topic] 4 | // 5 | // [Full Topic]: https://developer.apple.com/documentation/gameplaykit/gkbox?language=objc 6 | type Box struct { 7 | BoxMin [3]float32 8 | Pad_cgo_0 [4]byte 9 | BoxMax [3]float32 10 | Pad_cgo_1 [4]byte 11 | } 12 | 13 | // The definition of an axis-aligned rectangle addressed by the tree. [Full Topic] 14 | // 15 | // [Full Topic]: https://developer.apple.com/documentation/gameplaykit/gkquad?language=objc 16 | type Quad struct { 17 | QuadMin [2]float32 18 | QuadMax [2]float32 19 | } 20 | 21 | // The definition of a triangle in the mesh, available with the [gameplaykit/gkmeshgraph/triangleatindex] method. [Full Topic] 22 | // 23 | // [Full Topic]: https://developer.apple.com/documentation/gameplaykit/gktriangle?language=objc 24 | type Triangle struct { 25 | Points [3][3]float32 26 | Pad_cgo_0 [12]byte 27 | } 28 | -------------------------------------------------------------------------------- /macos/_wip/gameplaykit/gameplaykit_test.go: -------------------------------------------------------------------------------- 1 | package gameplaykit 2 | 3 | import "testing" 4 | 5 | func TestGameplayKitValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/_wip/iobluetooth/iobluetooth.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package iobluetooth 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework IOBluetooth 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/_wip/iobluetooth/iobluetooth_custom.go: -------------------------------------------------------------------------------- 1 | // WIP 2 | // 3 | // TODO: 4 | // * Issue where there is both OBEXSession and IOBluetoothOBEXSession, which inherits from OBEXSession, except the prefix is trimmed so both cannot exist 5 | package iobluetooth 6 | 7 | import "github.com/progrium/darwinkit/objc" 8 | 9 | // this guy was generated with Autorelease on OBEXError (an int) because of starting with Copy... todo: fix? 10 | 11 | // Copy a remote file to a local path [Full Topic] 12 | // 13 | // [Full Topic]: https://developer.apple.com/documentation/iobluetooth/obexfiletransferservices/1434277-copyremotefile?language=objc 14 | func (o_ OBEXFileTransferServices) CopyRemoteFileToLocalPath(inRemoteFileName string, inLocalPathAndName string) OBEXError { 15 | rv := objc.Call[OBEXError](o_, objc.Sel("copyRemoteFile:toLocalPath:"), inRemoteFileName, inLocalPathAndName) 16 | return rv 17 | } 18 | -------------------------------------------------------------------------------- /macos/_wip/iobluetooth/iobluetooth_test.go: -------------------------------------------------------------------------------- 1 | package iobluetooth 2 | 3 | import "testing" 4 | 5 | func TestIOBluetoothValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/_wip/metalkit/metalkit.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package metalkit 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework MetalKit 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/_wip/metalkit/metalkit_custom.go: -------------------------------------------------------------------------------- 1 | // WIP 2 | // 3 | // TODO: 4 | // * significant dependency on modelio which has import cycle with scenekit 5 | package metalkit 6 | -------------------------------------------------------------------------------- /macos/_wip/metalkit/metalkit_test.go: -------------------------------------------------------------------------------- 1 | package metalkit 2 | 3 | import "testing" 4 | 5 | func TestMetalKitValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/_wip/modelio/modelio.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package modelio 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework ModelIO 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/_wip/modelio/modelio_custom.go: -------------------------------------------------------------------------------- 1 | // WIP 2 | // 3 | // TODO: 4 | // * circular dependency on scenekit 5 | package modelio 6 | -------------------------------------------------------------------------------- /macos/_wip/modelio/modelio_structs.go: -------------------------------------------------------------------------------- 1 | package modelio 2 | 3 | // The minimal volume containing an object, used by the [modelio/mdlobject/boundingboxattime] method. [Full Topic] 4 | // 5 | // [Full Topic]: https://developer.apple.com/documentation/modelio/mdlaxisalignedboundingbox?language=objc 6 | type AxisAlignedBoundingBox struct { 7 | MaxBounds [3]float32 8 | Pad_cgo_0 [4]byte 9 | MinBounds [3]float32 10 | Pad_cgo_1 [4]byte 11 | } 12 | 13 | 14 | // The corner voxel indices defining a solid rectangular volume of voxels. Used by the [modelio/mdlvoxelarray/voxelindexextent] property and [modelio/mdlvoxelarray/voxelswithinextent] method. [Full Topic] 15 | // 16 | // [Full Topic]: https://developer.apple.com/documentation/modelio/mdlvoxelindexextent?language=objc 17 | type VoxelIndexExtent struct { 18 | MinimumExtent [4]int32 19 | MaximumExtent [4]int32 20 | } 21 | -------------------------------------------------------------------------------- /macos/_wip/modelio/modelio_test.go: -------------------------------------------------------------------------------- 1 | package modelio 2 | 3 | import "testing" 4 | 5 | func TestModelIOValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/_wip/scenekit/scenekit.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package scenekit 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework SceneKit 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/_wip/scenekit/scenekit_custom.go: -------------------------------------------------------------------------------- 1 | // WIP 2 | // 3 | // TODO: 4 | // * circular dependency on gameplaykit AND modelio 5 | package scenekit 6 | -------------------------------------------------------------------------------- /macos/_wip/scenekit/scenekit_structs.go: -------------------------------------------------------------------------------- 1 | package scenekit 2 | 3 | // A representation of a three-component vector. [Full Topic] 4 | // 5 | // [Full Topic]: https://developer.apple.com/documentation/scenekit/scnvector3?language=objc 6 | type Vector3 struct { 7 | X float64 8 | Y float64 9 | Z float64 10 | } 11 | 12 | // A representation of a 4 x 4 matrix. [Full Topic] 13 | // 14 | // [Full Topic]: https://developer.apple.com/documentation/scenekit/scnmatrix4?language=objc 15 | type Matrix4 struct { 16 | M11 float64 17 | M12 float64 18 | M13 float64 19 | M14 float64 20 | M21 float64 21 | M22 float64 22 | M23 float64 23 | M24 float64 24 | M31 float64 25 | M32 float64 26 | M33 float64 27 | M34 float64 28 | M41 float64 29 | M42 float64 30 | M43 float64 31 | M44 float64 32 | } 33 | 34 | // A representation of a four-component vector. [Full Topic] 35 | // 36 | // [Full Topic]: https://developer.apple.com/documentation/scenekit/scnvector4?language=objc 37 | type Vector4 struct { 38 | X float64 39 | Y float64 40 | Z float64 41 | W float64 42 | } 43 | -------------------------------------------------------------------------------- /macos/_wip/scenekit/scenekit_test.go: -------------------------------------------------------------------------------- 1 | package scenekit 2 | 3 | import "testing" 4 | 5 | func TestSceneKitValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/_wip/spritekit/spritekit.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package spritekit 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework SpriteKit 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/_wip/spritekit/spritekit_custom.go: -------------------------------------------------------------------------------- 1 | // WIP 2 | // 3 | // TODO: 4 | // * depends on wip avfaudio 5 | // * circular dependency on gameplaykit 6 | package spritekit 7 | -------------------------------------------------------------------------------- /macos/_wip/spritekit/spritekit_test.go: -------------------------------------------------------------------------------- 1 | package spritekit 2 | 3 | import "testing" 4 | 5 | func TestSpriteKitValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/appkit/accessibility_group_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A role-based protocol that declares the minimum interface necessary to act as a container for other user interface elements. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsaccessibilitygroup?language=objc 12 | type PAccessibilityGroup interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PAccessibilityGroup = (*AccessibilityGroupObject)(nil) 17 | 18 | // A concrete type for the [PAccessibilityGroup] protocol. 19 | type AccessibilityGroupObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/appkit/accessibility_image_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A role-based protocol that declares the minimum interface necessary for an accessibility element to act as an image. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsaccessibilityimage?language=objc 12 | type PAccessibilityImage interface { 13 | // optional 14 | AccessibilityLabel() string 15 | HasAccessibilityLabel() bool 16 | } 17 | 18 | // ensure impl type implements protocol interface 19 | var _ PAccessibilityImage = (*AccessibilityImageObject)(nil) 20 | 21 | // A concrete type for the [PAccessibilityImage] protocol. 22 | type AccessibilityImageObject struct { 23 | objc.Object 24 | } 25 | 26 | func (a_ AccessibilityImageObject) HasAccessibilityLabel() bool { 27 | return a_.RespondsToSelector(objc.Sel("accessibilityLabel")) 28 | } 29 | 30 | // Returns a short description of the image’s label. [Full Topic] 31 | // 32 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsaccessibilityimage/1531608-accessibilitylabel?language=objc 33 | func (a_ AccessibilityImageObject) AccessibilityLabel() string { 34 | rv := objc.Call[string](a_, objc.Sel("accessibilityLabel")) 35 | return rv 36 | } 37 | -------------------------------------------------------------------------------- /macos/appkit/accessibility_list_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A role-based protocol that declares the minimum interface necessary for an accessibility element to act as a list view. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsaccessibilitylist?language=objc 12 | type PAccessibilityList interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PAccessibilityList = (*AccessibilityListObject)(nil) 17 | 18 | // A concrete type for the [PAccessibilityList] protocol. 19 | type AccessibilityListObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/appkit/accessibility_outline_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A role-based protocol that declares the minimum interface necessary for an accessibility element to act as an outline view. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsaccessibilityoutline?language=objc 12 | type PAccessibilityOutline interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PAccessibilityOutline = (*AccessibilityOutlineObject)(nil) 17 | 18 | // A concrete type for the [PAccessibilityOutline] protocol. 19 | type AccessibilityOutlineObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/appkit/alignment_feedback_token_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsalignmentfeedbacktoken?language=objc 12 | type PAlignmentFeedbackToken interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PAlignmentFeedbackToken = (*AlignmentFeedbackTokenObject)(nil) 17 | 18 | // A concrete type for the [PAlignmentFeedbackToken] protocol. 19 | type AlignmentFeedbackTokenObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/appkit/appkit.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package appkit 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework AppKit 6 | // void importAppKitProtocols(); 7 | import "C" 8 | 9 | func init() { 10 | C.importAppKitProtocols() 11 | } 12 | -------------------------------------------------------------------------------- /macos/appkit/appkit_structs.go: -------------------------------------------------------------------------------- 1 | package appkit 2 | 3 | // Variables of type NSModalSession point to information used by the system between NSApplication’s [appkit/nsapplication/beginmodalsessionforwindow] and [appkit/nsapplication/endmodalsession] messages. [Full Topic] 4 | // 5 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsmodalsession?language=objc 6 | type ModalSession uintptr 7 | 8 | // The inset distances for views, taking the user interface layout direction into account. [Full Topic] 9 | // 10 | // [Full Topic]: https://developer.apple.com/documentation/uikit/nsdirectionaledgeinsets?language=objc 11 | type DirectionalEdgeInsets struct { 12 | Top float64 13 | Leading float64 14 | Bottom float64 15 | Trailing float64 16 | } 17 | -------------------------------------------------------------------------------- /macos/appkit/appkit_test.go: -------------------------------------------------------------------------------- 1 | package appkit 2 | 3 | import "testing" 4 | 5 | func TestAppkitValid(t *testing.T) { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /macos/appkit/change_spelling_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A protocol that responder objects can implement to correct a misspelled word. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nschangespelling?language=objc 12 | type PChangeSpelling interface { 13 | // optional 14 | ChangeSpelling(sender objc.Object) 15 | HasChangeSpelling() bool 16 | } 17 | 18 | // ensure impl type implements protocol interface 19 | var _ PChangeSpelling = (*ChangeSpellingObject)(nil) 20 | 21 | // A concrete type for the [PChangeSpelling] protocol. 22 | type ChangeSpellingObject struct { 23 | objc.Object 24 | } 25 | 26 | func (c_ ChangeSpellingObject) HasChangeSpelling() bool { 27 | return c_.RespondsToSelector(objc.Sel("changeSpelling:")) 28 | } 29 | 30 | // Replaces the selected word in the receiver with a corrected version from the Spelling panel. [Full Topic] 31 | // 32 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nschangespelling/1526512-changespelling?language=objc 33 | func (c_ ChangeSpellingObject) ChangeSpelling(sender objc.Object) { 34 | objc.Call[objc.Void](c_, objc.Sel("changeSpelling:"), sender) 35 | } 36 | -------------------------------------------------------------------------------- /macos/appkit/color_changing_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nscolorchanging?language=objc 12 | type PColorChanging interface { 13 | // optional 14 | ChangeColor(sender ColorPanel) 15 | HasChangeColor() bool 16 | } 17 | 18 | // ensure impl type implements protocol interface 19 | var _ PColorChanging = (*ColorChangingObject)(nil) 20 | 21 | // A concrete type for the [PColorChanging] protocol. 22 | type ColorChangingObject struct { 23 | objc.Object 24 | } 25 | 26 | func (c_ ColorChangingObject) HasChangeColor() bool { 27 | return c_.RespondsToSelector(objc.Sel("changeColor:")) 28 | } 29 | 30 | // Sent to the first responder when the user selects a color in an NSColorPanel object. [Full Topic] 31 | // 32 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nscolorchanging/3005175-changecolor?language=objc 33 | func (c_ ColorChangingObject) ChangeColor(sender ColorPanel) { 34 | objc.Call[objc.Void](c_, objc.Sel("changeColor:"), sender) 35 | } 36 | -------------------------------------------------------------------------------- /macos/appkit/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Construct and manage a graphical, event-driven user interface for your macOS app. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/appkit?language=objc 8 | package appkit 9 | -------------------------------------------------------------------------------- /macos/appkit/drawer_delegate.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A set of methods that drawer delegates implement to open, close, and resize the drawer. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsdrawerdelegate?language=objc 12 | type PDrawerDelegate interface { 13 | } 14 | 15 | // A delegate implementation builder for the [PDrawerDelegate] protocol. 16 | type DrawerDelegate struct { 17 | } 18 | 19 | // ensure impl type implements protocol interface 20 | var _ PDrawerDelegate = (*DrawerDelegateObject)(nil) 21 | 22 | // A concrete type for the [PDrawerDelegate] protocol. 23 | type DrawerDelegateObject struct { 24 | objc.Object 25 | } 26 | -------------------------------------------------------------------------------- /macos/appkit/ignore_misspelled_words_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A protocol that enables the Ignore button in the Spelling panel to function properly. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsignoremisspelledwords?language=objc 12 | type PIgnoreMisspelledWords interface { 13 | // optional 14 | IgnoreSpelling(sender objc.Object) 15 | HasIgnoreSpelling() bool 16 | } 17 | 18 | // ensure impl type implements protocol interface 19 | var _ PIgnoreMisspelledWords = (*IgnoreMisspelledWordsObject)(nil) 20 | 21 | // A concrete type for the [PIgnoreMisspelledWords] protocol. 22 | type IgnoreMisspelledWordsObject struct { 23 | objc.Object 24 | } 25 | 26 | func (i_ IgnoreMisspelledWordsObject) HasIgnoreSpelling() bool { 27 | return i_.RespondsToSelector(objc.Sel("ignoreSpelling:")) 28 | } 29 | 30 | // [Full Topic] 31 | // 32 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsignoremisspelledwords/1533150-ignorespelling?language=objc 33 | func (i_ IgnoreMisspelledWordsObject) IgnoreSpelling(sender objc.Object) { 34 | objc.Call[objc.Void](i_, objc.Sel("ignoreSpelling:"), sender) 35 | } 36 | -------------------------------------------------------------------------------- /macos/appkit/input_server_mouse_tracker_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsinputservermousetracker?language=objc 12 | type PInputServerMouseTracker interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PInputServerMouseTracker = (*InputServerMouseTrackerObject)(nil) 17 | 18 | // A concrete type for the [PInputServerMouseTracker] protocol. 19 | type InputServerMouseTrackerObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/appkit/input_service_provider_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsinputserviceprovider?language=objc 12 | type PInputServiceProvider interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PInputServiceProvider = (*InputServiceProviderObject)(nil) 17 | 18 | // A concrete type for the [PInputServiceProvider] protocol. 19 | type InputServiceProviderObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/appkit/matrix_delegate.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | // The NSMatrixDelegate protocol defines the optional methods implemented by delegates of NSMatrix objects. [Full Topic] 6 | // 7 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsmatrixdelegate?language=objc 8 | type PMatrixDelegate interface { 9 | PControlTextEditingDelegate 10 | } 11 | 12 | // A delegate implementation builder for the [PMatrixDelegate] protocol. 13 | type MatrixDelegate struct { 14 | ControlTextEditingDelegate 15 | } 16 | 17 | // ensure impl type implements protocol interface 18 | var _ PMatrixDelegate = (*MatrixDelegateObject)(nil) 19 | 20 | // A concrete type for the [PMatrixDelegate] protocol. 21 | type MatrixDelegateObject struct { 22 | ControlTextEditingDelegateObject 23 | } 24 | -------------------------------------------------------------------------------- /macos/appkit/menu_item_validation_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsmenuitemvalidation?language=objc 12 | type PMenuItemValidation interface { 13 | // optional 14 | ValidateMenuItem(menuItem MenuItem) bool 15 | HasValidateMenuItem() bool 16 | } 17 | 18 | // ensure impl type implements protocol interface 19 | var _ PMenuItemValidation = (*MenuItemValidationObject)(nil) 20 | 21 | // A concrete type for the [PMenuItemValidation] protocol. 22 | type MenuItemValidationObject struct { 23 | objc.Object 24 | } 25 | 26 | func (m_ MenuItemValidationObject) HasValidateMenuItem() bool { 27 | return m_.RespondsToSelector(objc.Sel("validateMenuItem:")) 28 | } 29 | 30 | // Implemented to override the default action of enabling or disabling a specific menu item. [Full Topic] 31 | // 32 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsmenuitemvalidation/3005191-validatemenuitem?language=objc 33 | func (m_ MenuItemValidationObject) ValidateMenuItem(menuItem MenuItem) bool { 34 | rv := objc.Call[bool](m_, objc.Sel("validateMenuItem:"), menuItem) 35 | return rv 36 | } 37 | -------------------------------------------------------------------------------- /macos/appkit/speech_synthesizer_delegate.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A set of optional methods implemented by delegates of NSSpeechSynthesizer objects. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nsspeechsynthesizerdelegate?language=objc 12 | type PSpeechSynthesizerDelegate interface { 13 | } 14 | 15 | // A delegate implementation builder for the [PSpeechSynthesizerDelegate] protocol. 16 | type SpeechSynthesizerDelegate struct { 17 | } 18 | 19 | // ensure impl type implements protocol interface 20 | var _ PSpeechSynthesizerDelegate = (*SpeechSynthesizerDelegateObject)(nil) 21 | 22 | // A concrete type for the [PSpeechSynthesizerDelegate] protocol. 23 | type SpeechSynthesizerDelegateObject struct { 24 | objc.Object 25 | } 26 | -------------------------------------------------------------------------------- /macos/appkit/text_input_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A set of methods that text views need to implement to interact properly with the text input management system. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nstextinput?language=objc 12 | type PTextInput interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PTextInput = (*TextInputObject)(nil) 17 | 18 | // A concrete type for the [PTextInput] protocol. 19 | type TextInputObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/appkit/touch_bar_provider_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A protocol that an object adopts to create a bar object in your app. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nstouchbarprovider?language=objc 12 | type PTouchBarProvider interface { 13 | // optional 14 | TouchBar() TouchBar 15 | HasTouchBar() bool 16 | } 17 | 18 | // ensure impl type implements protocol interface 19 | var _ PTouchBarProvider = (*TouchBarProviderObject)(nil) 20 | 21 | // A concrete type for the [PTouchBarProvider] protocol. 22 | type TouchBarProviderObject struct { 23 | objc.Object 24 | } 25 | 26 | func (t_ TouchBarProviderObject) HasTouchBar() bool { 27 | return t_.RespondsToSelector(objc.Sel("touchBar")) 28 | } 29 | 30 | // The property you implement to provide a Touch Bar object. [Full Topic] 31 | // 32 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nstouchbarprovider/2544662-touchbar?language=objc 33 | func (t_ TouchBarProviderObject) TouchBar() TouchBar { 34 | rv := objc.Call[TouchBar](t_, objc.Sel("touchBar")) 35 | return rv 36 | } 37 | -------------------------------------------------------------------------------- /macos/appkit/window_restoration_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package appkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A set of methods that restoration classes must implement to handle the recreation of windows. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/appkit/nswindowrestoration?language=objc 12 | type PWindowRestoration interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PWindowRestoration = (*WindowRestorationObject)(nil) 17 | 18 | // A concrete type for the [PWindowRestoration] protocol. 19 | type WindowRestorationObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/avfoundation/aliastypes.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package avfoundation 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/macos/coregraphics" 7 | "github.com/progrium/darwinkit/macos/coremedia" 8 | "github.com/progrium/darwinkit/macos/foundation" 9 | ) 10 | 11 | // A type alias for a closure that provides the result of an image generation request. [Full Topic] 12 | // 13 | // [Full Topic]: https://developer.apple.com/documentation/avfoundation/avassetimagegeneratorcompletionhandler?language=objc 14 | type AssetImageGeneratorCompletionHandler = func(requestedTime coremedia.Time, image coregraphics.ImageRef, actualTime coremedia.Time, result AssetImageGeneratorResult, error foundation.Error) 15 | -------------------------------------------------------------------------------- /macos/avfoundation/avfoundation.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package avfoundation 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework AVFoundation 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/avfoundation/avfoundation_test.go: -------------------------------------------------------------------------------- 1 | package avfoundation 2 | 3 | import "testing" 4 | 5 | func TestAVFoundationValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/avfoundation/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Work with audiovisual assets, control device cameras, process audio, and configure system audio interactions. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/avfoundation?language=objc 8 | package avfoundation 9 | -------------------------------------------------------------------------------- /macos/avkit/avkit.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package avkit 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework AVKit 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/avkit/avkit_test.go: -------------------------------------------------------------------------------- 1 | package avkit 2 | 3 | import "testing" 4 | 5 | func TestAVKitValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/avkit/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Create user interfaces for media playback, complete with transport controls, chapter navigation, picture-in-picture support, and display of subtitles and closed captions. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/avkit?language=objc 8 | package avkit 9 | -------------------------------------------------------------------------------- /macos/avkit/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "AVKit/AVKit.h" 4 | 5 | void importAVKitProtocols() { 6 | id o; 7 | o = @protocol(AVCaptureViewDelegate); 8 | o = @protocol(AVPictureInPictureControllerDelegate); 9 | o = @protocol(AVPictureInPictureSampleBufferPlaybackDelegate); 10 | o = @protocol(AVPlayerViewDelegate); 11 | o = @protocol(AVPlayerViewPictureInPictureDelegate); 12 | o = @protocol(AVRoutePickerViewDelegate); 13 | } 14 | -------------------------------------------------------------------------------- /macos/cloudkit/aliastypes.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package cloudkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/macos/foundation" 7 | ) 8 | 9 | // A block that processes the outcome of a permissions request. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/cloudkit/ckapplicationpermissionblock?language=objc 12 | type ApplicationPermissionBlock = func(applicationPermissionStatus ApplicationPermissionStatus, error foundation.Error) 13 | -------------------------------------------------------------------------------- /macos/cloudkit/cloudkit.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package cloudkit 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CloudKit 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/cloudkit/cloudkit_test.go: -------------------------------------------------------------------------------- 1 | package cloudkit 2 | 3 | import "testing" 4 | 5 | func TestCloudKitValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/cloudkit/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Store structured app and user data in iCloud containers that all users of your app can share. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/cloudkit?language=objc 8 | package cloudkit 9 | -------------------------------------------------------------------------------- /macos/cloudkit/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "CloudKit/CloudKit.h" 4 | 5 | void importCloudKitProtocols() { 6 | id o; 7 | o = @protocol(CKRecordKeyValueSetting); 8 | o = @protocol(CKRecordValue); 9 | } 10 | -------------------------------------------------------------------------------- /macos/cloudkit/record_value_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package cloudkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // The protocol that provides strong type-checking for objects that the CloudKit framework stores on the server. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/cloudkit/ckrecordvalue?language=objc 12 | type PRecordValue interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PRecordValue = (*RecordValueObject)(nil) 17 | 18 | // A concrete type for the [PRecordValue] protocol. 19 | type RecordValueObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/contacts/contacts.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package contacts 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework Contacts 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/contacts/contacts_test.go: -------------------------------------------------------------------------------- 1 | package contacts 2 | 3 | import "testing" 4 | 5 | func TestContactsValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/contacts/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Access the user's contacts, and format and localize contact information. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/contacts?language=objc 8 | package contacts 9 | -------------------------------------------------------------------------------- /macos/contacts/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "Contacts/Contacts.h" 4 | 5 | void importContactsProtocols() { 6 | id o; 7 | o = @protocol(CNChangeHistoryEventVisitor); 8 | } 9 | -------------------------------------------------------------------------------- /macos/contactsui/contactsui.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package contactsui 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework ContactsUI 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/contactsui/contactsui_test.go: -------------------------------------------------------------------------------- 1 | package contactsui 2 | 3 | import "testing" 4 | 5 | func TestContactsUIValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/contactsui/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Display information about users’ contacts in a graphical interface. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/contactsui?language=objc 8 | package contactsui 9 | -------------------------------------------------------------------------------- /macos/contactsui/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "ContactsUI/ContactsUI.h" 4 | 5 | void importContactsUIProtocols() { 6 | id o; 7 | o = @protocol(CNContactPickerDelegate); 8 | } 9 | -------------------------------------------------------------------------------- /macos/coreaudio/coreaudio.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package coreaudio 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreAudio 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/coreaudio/coreaudio_structs.go: -------------------------------------------------------------------------------- 1 | package coreaudio 2 | 3 | // [Full Topic] 4 | // 5 | // [Full Topic]: https://developer.apple.com/documentation/coreaudio/audioobjectpropertyaddress?language=objc 6 | type ObjectPropertyAddress struct { 7 | MSelector uint32 8 | MScope uint32 9 | MElement uint32 10 | } 11 | 12 | // [Full Topic] 13 | // 14 | // [Full Topic]: https://developer.apple.com/documentation/coreaudio/audiostreamrangeddescription?language=objc 15 | type StreamRangedDescription struct { 16 | MFormat uintptr // _Ctype_struct_AudioStreamBasicDescription 17 | MSampleRateRange uintptr // _Ctype_struct_AudioValueRange 18 | } 19 | 20 | // [Full Topic] 21 | // 22 | // [Full Topic]: https://developer.apple.com/documentation/coreaudio/audiohardwareioprocstreamusage?language=objc 23 | type HardwareIOProcStreamUsage struct { 24 | MIOProc uintptr 25 | MNumberStreams uint32 26 | MStreamIsOn [1]uint32 27 | } 28 | 29 | // TODO (unable to generate): 30 | // AudioServerPlugInClientInfo AudioDriverPlugInHostInfo AudioServerPlugInHostInterface AudioServerPlugInIOCycleInfo AudioServerPlugInCustomPropertyInfo AudioServerPlugInDriverInterface 31 | -------------------------------------------------------------------------------- /macos/coreaudio/coreaudio_test.go: -------------------------------------------------------------------------------- 1 | package coreaudio 2 | 3 | import "testing" 4 | 5 | func TestCoreAudioValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/coreaudio/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Use the Core Audio framework to interact with device’s audio hardware. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/coreaudio?language=objc 8 | package coreaudio 9 | -------------------------------------------------------------------------------- /macos/coreaudio/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "CoreAudio/CoreAudio.h" 4 | 5 | void importCoreAudioProtocols() { 6 | id o; 7 | } 8 | -------------------------------------------------------------------------------- /macos/coreaudiotypes/coreaudiotypes.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package coreaudiotypes 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreAudio 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/coreaudiotypes/coreaudiotypes_test.go: -------------------------------------------------------------------------------- 1 | package coreaudiotypes 2 | 3 | import "testing" 4 | 5 | func TestCoreAudioTypesValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/coreaudiotypes/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Use specialized data types to interact with audio streams, complex buffers, and audiovisual timestamps. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/coreaudiotypes?language=objc 8 | package coreaudiotypes 9 | -------------------------------------------------------------------------------- /macos/coreaudiotypes/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "CoreAudio/CoreAudioTypes.h" 4 | 5 | void importCoreAudioTypesProtocols() { 6 | id o; 7 | } 8 | -------------------------------------------------------------------------------- /macos/coredata/aliastypes.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coredata 4 | 5 | // A completion block that an asynchronous fetch request calls with a result. [Full Topic] 6 | // 7 | // [Full Topic]: https://developer.apple.com/documentation/coredata/nspersistentstoreasynchronousfetchresultcompletionblock?language=objc 8 | type PersistentStoreAsynchronousFetchResultCompletionBlock = func(result AsynchronousFetchResult) 9 | -------------------------------------------------------------------------------- /macos/coredata/coredata.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package coredata 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreData 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/coredata/coredata_test.go: -------------------------------------------------------------------------------- 1 | package coredata 2 | 3 | import "testing" 4 | 5 | func TestCoreDataValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/coredata/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Persist or cache data on a single device, or sync data to multiple devices with CloudKit. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/coredata?language=objc 8 | package coredata 9 | -------------------------------------------------------------------------------- /macos/coredata/fetch_request_result_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coredata 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // An abstract protocol used with parameterized fetch requests. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coredata/nsfetchrequestresult?language=objc 12 | type PFetchRequestResult interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PFetchRequestResult = (*FetchRequestResultObject)(nil) 17 | 18 | // A concrete type for the [PFetchRequestResult] protocol. 19 | type FetchRequestResultObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/coredata/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "CoreData/CoreData.h" 4 | 5 | void importCoreDataProtocols() { 6 | id o; 7 | o = @protocol(NSFetchRequestResult); 8 | o = @protocol(NSFetchedResultsControllerDelegate); 9 | o = @protocol(NSFetchedResultsSectionInfo); 10 | } 11 | -------------------------------------------------------------------------------- /macos/corefoundation/corefoundation.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package corefoundation 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreFoundation 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/corefoundation/corefoundation_custom.go: -------------------------------------------------------------------------------- 1 | package corefoundation 2 | 3 | type NotificationName StringRef 4 | type TypeRef uintptr 5 | -------------------------------------------------------------------------------- /macos/corefoundation/corefoundation_test.go: -------------------------------------------------------------------------------- 1 | package corefoundation 2 | 3 | import "testing" 4 | 5 | func TestCoreFoundationValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/corefoundation/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Access low-level functions, primitive data types, and various collection types that are bridged seamlessly with the Foundation framework. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/corefoundation?language=objc 8 | package corefoundation 9 | -------------------------------------------------------------------------------- /macos/corefoundation/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "CoreFoundation/CoreFoundation.h" 4 | 5 | void importCoreFoundationProtocols() { 6 | id o; 7 | } 8 | -------------------------------------------------------------------------------- /macos/coregraphics/coregraphics.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package coregraphics 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreGraphics -framework CoreFoundation 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/coregraphics/coregraphics_custom.go: -------------------------------------------------------------------------------- 1 | package coregraphics 2 | 3 | // An affine transformation matrix for use in drawing 2D graphics. [Full Topic] 4 | // 5 | // [Full Topic]: https://developer.apple.com/documentation/corefoundation/cgaffinetransform?language=objc 6 | type AffineTransform struct { 7 | M11 float64 8 | M12 float64 9 | M21 float64 10 | M22 float64 11 | TX float64 12 | TY float64 13 | } 14 | -------------------------------------------------------------------------------- /macos/coregraphics/coregraphics_test.go: -------------------------------------------------------------------------------- 1 | package coregraphics 2 | 3 | import "testing" 4 | 5 | func TestCoreGraphicsValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/coregraphics/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Harness the power of Quartz technology to perform lightweight 2D rendering with high-fidelity output. Handle path-based drawing, antialiased rendering, gradients, images, color management, PDF documents, and more. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/coregraphics?language=objc 8 | package coregraphics 9 | -------------------------------------------------------------------------------- /macos/coregraphics/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "CoreGraphics/CoreGraphics.h" 4 | 5 | void importCoreGraphicsProtocols() { 6 | id o; 7 | } 8 | -------------------------------------------------------------------------------- /macos/coreimage/aliastypes.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/macos/coregraphics" 7 | ) 8 | 9 | // The signature for a block that computes the region of interest (ROI) for a given area of destination image pixels. Core Image calls this block when applying the kernel. You specify this block when using the [coreimage/cikernel/applywithextent] method. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/cikernelroicallback?language=objc 12 | type KernelROICallback = func(index int, destRect coregraphics.Rect) coregraphics.Rect 13 | -------------------------------------------------------------------------------- /macos/coreimage/area_average_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/ciareaaverage?language=objc 12 | type PAreaAverage interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PAreaAverage = (*AreaAverageObject)(nil) 17 | 18 | // A concrete type for the [PAreaAverage] protocol. 19 | type AreaAverageObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/coreimage/area_maximum_alpha_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/ciareamaximumalpha?language=objc 12 | type PAreaMaximumAlpha interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PAreaMaximumAlpha = (*AreaMaximumAlphaObject)(nil) 17 | 18 | // A concrete type for the [PAreaMaximumAlpha] protocol. 19 | type AreaMaximumAlphaObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/coreimage/area_maximum_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/ciareamaximum?language=objc 12 | type PAreaMaximum interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PAreaMaximum = (*AreaMaximumObject)(nil) 17 | 18 | // A concrete type for the [PAreaMaximum] protocol. 19 | type AreaMaximumObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/coreimage/area_min_max_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/ciareaminmax?language=objc 12 | type PAreaMinMax interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PAreaMinMax = (*AreaMinMaxObject)(nil) 17 | 18 | // A concrete type for the [PAreaMinMax] protocol. 19 | type AreaMinMaxObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/coreimage/area_min_max_red_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/ciareaminmaxred?language=objc 12 | type PAreaMinMaxRed interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PAreaMinMaxRed = (*AreaMinMaxRedObject)(nil) 17 | 18 | // A concrete type for the [PAreaMinMaxRed] protocol. 19 | type AreaMinMaxRedObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/coreimage/area_minimum_alpha_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/ciareaminimumalpha?language=objc 12 | type PAreaMinimumAlpha interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PAreaMinimumAlpha = (*AreaMinimumAlphaObject)(nil) 17 | 18 | // A concrete type for the [PAreaMinimumAlpha] protocol. 19 | type AreaMinimumAlphaObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/coreimage/area_minimum_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/ciareaminimum?language=objc 12 | type PAreaMinimum interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PAreaMinimum = (*AreaMinimumObject)(nil) 17 | 18 | // A concrete type for the [PAreaMinimum] protocol. 19 | type AreaMinimumObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/coreimage/column_average_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/cicolumnaverage?language=objc 12 | type PColumnAverage interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PColumnAverage = (*ColumnAverageObject)(nil) 17 | 18 | // A concrete type for the [PColumnAverage] protocol. 19 | type ColumnAverageObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/coreimage/coreimage.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package coreimage 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreImage 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/coreimage/coreimage_test.go: -------------------------------------------------------------------------------- 1 | package coreimage 2 | 3 | import "testing" 4 | 5 | func TestCoreImageValid(t *testing.T) { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /macos/coreimage/dissolve_transition_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // The properties you use to configure a dissolve transition filter. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/cidissolvetransition?language=objc 12 | type PDissolveTransition interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PDissolveTransition = (*DissolveTransitionObject)(nil) 17 | 18 | // A concrete type for the [PDissolveTransition] protocol. 19 | type DissolveTransitionObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/coreimage/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Use built-in or custom filters to process still and video images. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/coreimage?language=objc 8 | package coreimage 9 | -------------------------------------------------------------------------------- /macos/coreimage/filter_constructor_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A general interface for objects that produce CIFilter instances. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/cifilterconstructor?language=objc 12 | type PFilterConstructor interface { 13 | // optional 14 | FilterWithName(name string) Filter 15 | HasFilterWithName() bool 16 | } 17 | 18 | // ensure impl type implements protocol interface 19 | var _ PFilterConstructor = (*FilterConstructorObject)(nil) 20 | 21 | // A concrete type for the [PFilterConstructor] protocol. 22 | type FilterConstructorObject struct { 23 | objc.Object 24 | } 25 | 26 | func (f_ FilterConstructorObject) HasFilterWithName() bool { 27 | return f_.RespondsToSelector(objc.Sel("filterWithName:")) 28 | } 29 | 30 | // Returns a filter object specified by name. [Full Topic] 31 | // 32 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/cifilterconstructor/1438018-filterwithname?language=objc 33 | func (f_ FilterConstructorObject) FilterWithName(name string) Filter { 34 | rv := objc.Call[Filter](f_, objc.Sel("filterWithName:"), name) 35 | return rv 36 | } 37 | -------------------------------------------------------------------------------- /macos/coreimage/perspective_transform_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // The properties you use to configure a perspective transform filter. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/ciperspectivetransform?language=objc 12 | type PPerspectiveTransform interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PPerspectiveTransform = (*PerspectiveTransformObject)(nil) 17 | 18 | // A concrete type for the [PPerspectiveTransform] protocol. 19 | type PerspectiveTransformObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/coreimage/plug_in_registration_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The interface for loading Core Image image units. [Full Topic] 12 | // 13 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/cipluginregistration?language=objc 14 | type PPlugInRegistration interface { 15 | // optional 16 | Load(host unsafe.Pointer) bool 17 | HasLoad() bool 18 | } 19 | 20 | // ensure impl type implements protocol interface 21 | var _ PPlugInRegistration = (*PlugInRegistrationObject)(nil) 22 | 23 | // A concrete type for the [PPlugInRegistration] protocol. 24 | type PlugInRegistrationObject struct { 25 | objc.Object 26 | } 27 | 28 | func (p_ PlugInRegistrationObject) HasLoad() bool { 29 | return p_.RespondsToSelector(objc.Sel("load:")) 30 | } 31 | 32 | // Loads and initializes an image unit, performing custom tasks as needed. [Full Topic] 33 | // 34 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/cipluginregistration/1437823-load?language=objc 35 | func (p_ PlugInRegistrationObject) Load(host unsafe.Pointer) bool { 36 | rv := objc.Call[bool](p_, objc.Sel("load:"), host) 37 | return rv 38 | } 39 | -------------------------------------------------------------------------------- /macos/coreimage/random_generator_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // The properties you use to configure a random generator filter. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/cirandomgenerator?language=objc 12 | type PRandomGenerator interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PRandomGenerator = (*RandomGeneratorObject)(nil) 17 | 18 | // A concrete type for the [PRandomGenerator] protocol. 19 | type RandomGeneratorObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/coreimage/row_average_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreimage 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coreimage/cirowaverage?language=objc 12 | type PRowAverage interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PRowAverage = (*RowAverageObject)(nil) 17 | 18 | // A concrete type for the [PRowAverage] protocol. 19 | type RowAverageObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/corelocation/aliastypes.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package corelocation 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/macos/foundation" 7 | ) 8 | 9 | // A block to be called when a geocoding request is complete. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/corelocation/clgeocodecompletionhandler?language=objc 12 | type GeocodeCompletionHandler = func(placemarks []Placemark, error foundation.Error) 13 | -------------------------------------------------------------------------------- /macos/corelocation/corelocation.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package corelocation 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreLocation 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/corelocation/corelocation_structs.go: -------------------------------------------------------------------------------- 1 | package corelocation 2 | 3 | // The latitude and longitude associated with a location, specified using the WGS 84 reference frame. [Full Topic] 4 | // 5 | // [Full Topic]: https://developer.apple.com/documentation/corelocation/cllocationcoordinate2d?language=objc 6 | type LocationCoordinate2D struct { 7 | Latitude float64 8 | Longitude float64 9 | } 10 | -------------------------------------------------------------------------------- /macos/corelocation/corelocation_test.go: -------------------------------------------------------------------------------- 1 | package corelocation 2 | 3 | import "testing" 4 | 5 | func TestCoreLocationValid(t *testing.T) { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /macos/corelocation/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Obtain the geographic location and orientation of a device. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/corelocation?language=objc 8 | package corelocation 9 | -------------------------------------------------------------------------------- /macos/corelocation/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "CoreLocation/CoreLocation.h" 4 | 5 | void importCoreLocationProtocols() { 6 | id o; 7 | o = @protocol(CLLocationManagerDelegate); 8 | } 9 | -------------------------------------------------------------------------------- /macos/coremedia/coremedia.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package coremedia 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreMedia 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/coremedia/coremedia_custom.go: -------------------------------------------------------------------------------- 1 | package coremedia 2 | 3 | import "github.com/progrium/darwinkit/macos/corefoundation" 4 | 5 | type BufferRef corefoundation.TypeRef 6 | type MetadataFormatDescriptionRef FormatDescriptionRef 7 | type VideoFormatDescriptionRef FormatDescriptionRef 8 | type AudioFormatDescriptionRef FormatDescriptionRef 9 | -------------------------------------------------------------------------------- /macos/coremedia/coremedia_test.go: -------------------------------------------------------------------------------- 1 | package coremedia 2 | 3 | import "testing" 4 | 5 | func TestCoreMediaValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/coremedia/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Represent time-based audio-visual assets with essential data types. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/coremedia?language=objc 8 | package coremedia 9 | -------------------------------------------------------------------------------- /macos/coremedia/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "CoreMedia/CoreMedia.h" 4 | 5 | void importCoreMediaProtocols() { 6 | id o; 7 | } 8 | -------------------------------------------------------------------------------- /macos/coremediaio/aliastypes.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coremediaio 4 | 5 | import ( 6 | "unsafe" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/coremediaio/cmiostreamscheduledoutputnotificationproc?language=objc 12 | type StreamScheduledOutputNotificationProc = func(sequenceNumberOfBufferThatWasOutput uint64, outputHostTime uint64, scheduledOutputNotificationRefCon unsafe.Pointer) 13 | 14 | // [Full Topic] 15 | // 16 | // [Full Topic]: https://developer.apple.com/documentation/coremediaio/cmiodevicegetsmptetimeproc?language=objc 17 | type DeviceGetSMPTETimeProc = func(refCon unsafe.Pointer, frameNumber *uint64, isDropFrame *bool, tolerance *uint32) uint 18 | 19 | // [Full Topic] 20 | // 21 | // [Full Topic]: https://developer.apple.com/documentation/coremediaio/cmiodevicestreamqueuealteredproc?language=objc 22 | type DeviceStreamQueueAlteredProc = func(streamID StreamID, token unsafe.Pointer, refCon unsafe.Pointer) 23 | -------------------------------------------------------------------------------- /macos/coremediaio/coremediaio.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package coremediaio 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreMediaIO 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/coremediaio/coremediaio_test.go: -------------------------------------------------------------------------------- 1 | package coremediaio 2 | 3 | import "testing" 4 | 5 | func TestCoreMediaIOValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/coremediaio/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Securely support custom camera devices in macOS. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/coremediaio?language=objc 8 | package coremediaio 9 | -------------------------------------------------------------------------------- /macos/coremidi/coremidi.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package coremidi 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreMIDI 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/coremidi/coremidi_custom.go: -------------------------------------------------------------------------------- 1 | package coremidi 2 | 3 | import "github.com/progrium/darwinkit/macos/foundation" 4 | 5 | type CIInitiatiorMUID = foundation.Number 6 | -------------------------------------------------------------------------------- /macos/coremidi/coremidi_test.go: -------------------------------------------------------------------------------- 1 | package coremidi 2 | 3 | import "testing" 4 | 5 | func TestCoreMIDIValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/coremidi/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Communicate with MIDI devices such as hardware keyboards and synthesizers. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/coremidi?language=objc 8 | package coremidi 9 | -------------------------------------------------------------------------------- /macos/coremidi/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "CoreMIDI/CoreMIDI.h" 4 | 5 | void importCoreMIDIProtocols() { 6 | id o; 7 | o = @protocol(MIDICIProfileResponderDelegate); 8 | } 9 | -------------------------------------------------------------------------------- /macos/coreml/coreml.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package coreml 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreML 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/coreml/coreml_test.go: -------------------------------------------------------------------------------- 1 | package coreml 2 | 3 | import "testing" 4 | 5 | func TestCoreMLValid(t *testing.T) { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /macos/coreml/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Integrate machine learning models into your app. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/coreml?language=objc 8 | package coreml 9 | -------------------------------------------------------------------------------- /macos/coreml/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "CoreML/CoreML.h" 4 | 5 | void importCoreMLProtocols() { 6 | id o; 7 | o = @protocol(MLBatchProvider); 8 | o = @protocol(MLCustomLayer); 9 | o = @protocol(MLCustomModel); 10 | o = @protocol(MLFeatureProvider); 11 | o = @protocol(MLWritable); 12 | } 13 | -------------------------------------------------------------------------------- /macos/coreml/writable_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package coreml 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/macos/foundation" 9 | "github.com/progrium/darwinkit/objc" 10 | ) 11 | 12 | // A set of methods that saves a machine learning type to the file system. [Full Topic] 13 | // 14 | // [Full Topic]: https://developer.apple.com/documentation/coreml/mlwritable?language=objc 15 | type PWritable interface { 16 | // optional 17 | WriteToURLError(url foundation.URL, error unsafe.Pointer) bool 18 | HasWriteToURLError() bool 19 | } 20 | 21 | // ensure impl type implements protocol interface 22 | var _ PWritable = (*WritableObject)(nil) 23 | 24 | // A concrete type for the [PWritable] protocol. 25 | type WritableObject struct { 26 | objc.Object 27 | } 28 | 29 | func (w_ WritableObject) HasWriteToURLError() bool { 30 | return w_.RespondsToSelector(objc.Sel("writeToURL:error:")) 31 | } 32 | 33 | // Exports a machine learning file to the file system. [Full Topic] 34 | // 35 | // [Full Topic]: https://developer.apple.com/documentation/coreml/mlwritable/3197650-writetourl?language=objc 36 | func (w_ WritableObject) WriteToURLError(url foundation.URL, error unsafe.Pointer) bool { 37 | rv := objc.Call[bool](w_, objc.Sel("writeToURL:error:"), url, error) 38 | return rv 39 | } 40 | -------------------------------------------------------------------------------- /macos/corespotlight/corespotlight.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package corespotlight 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreSpotlight 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/corespotlight/corespotlight_test.go: -------------------------------------------------------------------------------- 1 | package corespotlight 2 | 3 | import "testing" 4 | 5 | func TestCorespotlightValid(t *testing.T) { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /macos/corespotlight/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Index your app so users can search the content from Spotlight and Safari. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/corespotlight?language=objc 8 | package corespotlight 9 | -------------------------------------------------------------------------------- /macos/corespotlight/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "CoreSpotlight/CoreSpotlight.h" 4 | 5 | void importCoreSpotlightProtocols() { 6 | id o; 7 | o = @protocol(CSSearchableIndexDelegate); 8 | } 9 | -------------------------------------------------------------------------------- /macos/corevideo/corevideo.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package corevideo 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework CoreVideo 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/corevideo/corevideo_custom.go: -------------------------------------------------------------------------------- 1 | package corevideo 2 | 3 | type PixelBufferRef ImageBufferRef 4 | type ImageBufferRef BufferRef 5 | -------------------------------------------------------------------------------- /macos/corevideo/corevideo_test.go: -------------------------------------------------------------------------------- 1 | package corevideo 2 | 3 | import "testing" 4 | 5 | func TestCoreVideoValid(t *testing.T) { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /macos/corevideo/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Process digital video, including manipulation of individual frames, using a pipeline-based API and support for both Metal and OpenGL. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/corevideo?language=objc 8 | package corevideo 9 | -------------------------------------------------------------------------------- /macos/corevideo/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "CoreVideo/CoreVideo.h" 4 | 5 | void importCoreVideoProtocols() { 6 | id o; 7 | } 8 | -------------------------------------------------------------------------------- /macos/fileprovider/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // An extension other apps use to access files and folders managed by your app and synced with a remote storage. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/fileprovider?language=objc 8 | package fileprovider 9 | -------------------------------------------------------------------------------- /macos/fileprovider/fileprovider.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package fileprovider 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework FileProvider 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/fileprovider/fileprovider_custom.go: -------------------------------------------------------------------------------- 1 | package fileprovider 2 | 3 | import "github.com/progrium/darwinkit/macos/foundation" 4 | 5 | type FileProviderSyncAnchor = foundation.Data 6 | type FileProviderPage = foundation.Data 7 | -------------------------------------------------------------------------------- /macos/fileprovider/fileprovider_structs.go: -------------------------------------------------------------------------------- 1 | package fileprovider 2 | 3 | // A structure that contains the file type and file creator codes for an item. [Full Topic] 4 | // 5 | // [Full Topic]: https://developer.apple.com/documentation/fileprovider/nsfileprovidertypeandcreator?language=objc 6 | type FileProviderTypeAndCreator struct { 7 | Type uint32 8 | Creator uint32 9 | } 10 | -------------------------------------------------------------------------------- /macos/fileprovider/fileprovider_test.go: -------------------------------------------------------------------------------- 1 | package fileprovider 2 | 3 | import "testing" 4 | 5 | func TestFileProviderValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/foundation/archiver.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package foundation 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [Archiver] class. 12 | var ArchiverClass = _ArchiverClass{objc.GetClass("NSArchiver")} 13 | 14 | type _ArchiverClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [Archiver] class. 19 | type IArchiver interface { 20 | ICoder 21 | } 22 | 23 | // A coder that stores an object's data to an archive. [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/foundation/nsarchiver?language=objc 26 | type Archiver struct { 27 | Coder 28 | } 29 | 30 | func ArchiverFrom(ptr unsafe.Pointer) Archiver { 31 | return Archiver{ 32 | Coder: CoderFrom(ptr), 33 | } 34 | } 35 | 36 | func (ac _ArchiverClass) Alloc() Archiver { 37 | rv := objc.Call[Archiver](ac, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (ac _ArchiverClass) New() Archiver { 42 | rv := objc.Call[Archiver](ac, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewArchiver() Archiver { 48 | return ArchiverClass.New() 49 | } 50 | 51 | func (a_ Archiver) Init() Archiver { 52 | rv := objc.Call[Archiver](a_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/foundation/connection_delegate.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package foundation 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // An interface for interacting with low-level, interprocess connections. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/foundation/nsconnectiondelegate?language=objc 12 | type PConnectionDelegate interface { 13 | } 14 | 15 | // A delegate implementation builder for the [PConnectionDelegate] protocol. 16 | type ConnectionDelegate struct { 17 | } 18 | 19 | // ensure impl type implements protocol interface 20 | var _ PConnectionDelegate = (*ConnectionDelegateObject)(nil) 21 | 22 | // A concrete type for the [PConnectionDelegate] protocol. 23 | type ConnectionDelegateObject struct { 24 | objc.Object 25 | } 26 | -------------------------------------------------------------------------------- /macos/foundation/copying_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package foundation 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // A protocol that objects adopt to provide functional copies of themselves. [Full Topic] 12 | // 13 | // [Full Topic]: https://developer.apple.com/documentation/foundation/nscopying?language=objc 14 | type PCopying interface { 15 | // optional 16 | CopyWithZone(zone unsafe.Pointer) objc.Object 17 | HasCopyWithZone() bool 18 | } 19 | 20 | // ensure impl type implements protocol interface 21 | var _ PCopying = (*CopyingObject)(nil) 22 | 23 | // A concrete type for the [PCopying] protocol. 24 | type CopyingObject struct { 25 | objc.Object 26 | } 27 | 28 | func (c_ CopyingObject) HasCopyWithZone() bool { 29 | return c_.RespondsToSelector(objc.Sel("copyWithZone:")) 30 | } 31 | 32 | // Returns a new instance that’s a copy of the receiver. [Full Topic] 33 | // 34 | // [Full Topic]: https://developer.apple.com/documentation/foundation/nscopying/1410311-copywithzone?language=objc 35 | func (c_ CopyingObject) CopyWithZone(zone unsafe.Pointer) objc.Object { 36 | rv := objc.Call[objc.Object](c_, objc.Sel("copyWithZone:"), zone) 37 | return rv 38 | } 39 | -------------------------------------------------------------------------------- /macos/foundation/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Access essential data types, collections, and operating-system services to define the base layer of functionality for your app. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/foundation?language=objc 8 | package foundation 9 | -------------------------------------------------------------------------------- /macos/foundation/foundation.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package foundation 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework Foundation 6 | import "C" 7 | 8 | func init() { 9 | // #import 10 | // void importFoundationProtocols(); 11 | //C.importFoundationProtocols() 12 | } 13 | -------------------------------------------------------------------------------- /macos/foundation/host.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package foundation 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [Host] class. 12 | var HostClass = _HostClass{objc.GetClass("NSHost")} 13 | 14 | type _HostClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [Host] class. 19 | type IHost interface { 20 | objc.IObject 21 | } 22 | 23 | // A representation of an individual host on the network. [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/foundation/nshost?language=objc 26 | type Host struct { 27 | objc.Object 28 | } 29 | 30 | func HostFrom(ptr unsafe.Pointer) Host { 31 | return Host{ 32 | Object: objc.ObjectFrom(ptr), 33 | } 34 | } 35 | 36 | func (hc _HostClass) Alloc() Host { 37 | rv := objc.Call[Host](hc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (hc _HostClass) New() Host { 42 | rv := objc.Call[Host](hc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewHost() Host { 48 | return HostClass.New() 49 | } 50 | 51 | func (h_ Host) Init() Host { 52 | rv := objc.Call[Host](h_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/foundation/progress_reporting_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package foundation 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // An interface for objects that report progress using a single progress instance. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/foundation/nsprogressreporting?language=objc 12 | type PProgressReporting interface { 13 | // optional 14 | Progress() Progress 15 | HasProgress() bool 16 | } 17 | 18 | // ensure impl type implements protocol interface 19 | var _ PProgressReporting = (*ProgressReportingObject)(nil) 20 | 21 | // A concrete type for the [PProgressReporting] protocol. 22 | type ProgressReportingObject struct { 23 | objc.Object 24 | } 25 | 26 | func (p_ ProgressReportingObject) HasProgress() bool { 27 | return p_.RespondsToSelector(objc.Sel("progress")) 28 | } 29 | 30 | // The progress object returned by the class. [Full Topic] 31 | // 32 | // [Full Topic]: https://developer.apple.com/documentation/foundation/nsprogressreporting/1412781-progress?language=objc 33 | func (p_ ProgressReportingObject) Progress() Progress { 34 | rv := objc.Call[Progress](p_, objc.Sel("progress")) 35 | return rv 36 | } 37 | -------------------------------------------------------------------------------- /macos/foundation/url_handle_client_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package foundation 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // The interface implemented by URL handle clients. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/foundation/nsurlhandleclient?language=objc 12 | type PURLHandleClient interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PURLHandleClient = (*URLHandleClientObject)(nil) 17 | 18 | // A concrete type for the [PURLHandleClient] protocol. 19 | type URLHandleClientObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/foundation/user_notification_center_delegate.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package foundation 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // An interface that enables customizing the behavior of the default notification center. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/foundation/nsusernotificationcenterdelegate?language=objc 12 | type PUserNotificationCenterDelegate interface { 13 | } 14 | 15 | // A delegate implementation builder for the [PUserNotificationCenterDelegate] protocol. 16 | type UserNotificationCenterDelegate struct { 17 | } 18 | 19 | // ensure impl type implements protocol interface 20 | var _ PUserNotificationCenterDelegate = (*UserNotificationCenterDelegateObject)(nil) 21 | 22 | // A concrete type for the [PUserNotificationCenterDelegate] protocol. 23 | type UserNotificationCenterDelegateObject struct { 24 | objc.Object 25 | } 26 | -------------------------------------------------------------------------------- /macos/imageio/aliastypes.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package imageio 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/macos/corefoundation" 7 | "github.com/progrium/darwinkit/macos/coregraphics" 8 | ) 9 | 10 | // The block to execute when enumerating the tags of a metadata object. [Full Topic] 11 | // 12 | // [Full Topic]: https://developer.apple.com/documentation/imageio/cgimagemetadatatagblock?language=objc 13 | type ImageMetadataTagBlock = func(path corefoundation.StringRef, tag ImageMetadataTagRef) bool 14 | 15 | // The block to execute for each frame of an image animation. [Full Topic] 16 | // 17 | // [Full Topic]: https://developer.apple.com/documentation/imageio/cgimagesourceanimationblock?language=objc 18 | type ImageSourceAnimationBlock = func(index uint, image coregraphics.ImageRef, stop *bool) 19 | -------------------------------------------------------------------------------- /macos/imageio/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Read and write most image file formats, and access an image’s metadata. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/imageio?language=objc 8 | package imageio 9 | -------------------------------------------------------------------------------- /macos/imageio/imageio.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package imageio 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework ImageIO 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/imageio/imageio_structs.go: -------------------------------------------------------------------------------- 1 | package imageio 2 | 3 | // An opaque type that you use to write image data to a URL, data object, or data consumer. [Full Topic] 4 | // 5 | // [Full Topic]: https://developer.apple.com/documentation/imageio/cgimagedestinationref?language=objc 6 | type ImageDestinationRef uintptr 7 | 8 | // An opaque type that you use to read image data from a URL, data object, or data consumer. [Full Topic] 9 | // 10 | // [Full Topic]: https://developer.apple.com/documentation/imageio/cgimagesourceref?language=objc 11 | type ImageSourceRef uintptr 12 | 13 | // An immutable type that contains information about a single piece of image metadata. [Full Topic] 14 | // 15 | // [Full Topic]: https://developer.apple.com/documentation/imageio/cgimagemetadatatagref?language=objc 16 | type ImageMetadataTagRef uintptr 17 | 18 | // An immutable object that contains the XMP metadata associated with an image. [Full Topic] 19 | // 20 | // [Full Topic]: https://developer.apple.com/documentation/imageio/cgimagemetadataref?language=objc 21 | type ImageMetadataRef uintptr 22 | -------------------------------------------------------------------------------- /macos/imageio/imageio_test.go: -------------------------------------------------------------------------------- 1 | package imageio 2 | 3 | import "testing" 4 | 5 | func TestImageIOValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/imageio/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "ImageIO/ImageIO.h" 4 | 5 | void importImageIOProtocols() { 6 | id o; 7 | } 8 | -------------------------------------------------------------------------------- /macos/iosurface/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Share hardware-accelerated buffer data (framebuffers and textures) across multiple processes. Manage image memory more efficiently. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/iosurface?language=objc 8 | package iosurface 9 | -------------------------------------------------------------------------------- /macos/iosurface/iosurface.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package iosurface 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework IOSurface 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/iosurface/iosurface_structs.go: -------------------------------------------------------------------------------- 1 | package iosurface 2 | 3 | // Data type representing an IOSurface opaque object. [Full Topic] 4 | // 5 | // [Full Topic]: https://developer.apple.com/documentation/iosurface/iosurfaceref?language=objc 6 | type Ref uintptr 7 | -------------------------------------------------------------------------------- /macos/iosurface/iosurface_test.go: -------------------------------------------------------------------------------- 1 | package iosurface 2 | 3 | import "testing" 4 | 5 | func TestIOSurfaceValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/iosurface/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "IOSurface/IOSurface.h" 4 | 5 | void importIOSurfaceProtocols() { 6 | id o; 7 | } 8 | -------------------------------------------------------------------------------- /macos/macos.go: -------------------------------------------------------------------------------- 1 | // macOS Frameworks 2 | // 3 | // This package also contains platform specific helpers. 4 | package macos 5 | 6 | import ( 7 | "runtime" 8 | 9 | "github.com/progrium/darwinkit/macos/appkit" 10 | "github.com/progrium/darwinkit/macos/foundation" 11 | ) 12 | 13 | // RunApp builds a delegate, sets it on the shared application, and runs the event loop. 14 | // It uses didLaunch to set ApplicationDidFinishLaunching on the delegate. 15 | // It also wraps run with runtime.LockOSThread() and should be called from main. 16 | func RunApp(didLaunch func(appkit.Application, *appkit.ApplicationDelegate)) { 17 | runtime.LockOSThread() 18 | defer runtime.UnlockOSThread() 19 | app := appkit.Application_SharedApplication() 20 | delegate := &appkit.ApplicationDelegate{} 21 | delegate.SetApplicationDidFinishLaunching(func(notification foundation.Notification) { 22 | didLaunch(app, delegate) 23 | }) 24 | app.SetDelegate(delegate) 25 | app.Run() 26 | } 27 | -------------------------------------------------------------------------------- /macos/mediaplayer/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Find and play songs, audio podcasts, audio books, and more from within your app. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/mediaplayer?language=objc 8 | package mediaplayer 9 | -------------------------------------------------------------------------------- /macos/mediaplayer/mediaplayer.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package mediaplayer 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework MediaPlayer 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/mediaplayer/mediaplayer_custom.go: -------------------------------------------------------------------------------- 1 | package mediaplayer 2 | -------------------------------------------------------------------------------- /macos/mediaplayer/mediaplayer_test.go: -------------------------------------------------------------------------------- 1 | package mediaplayer 2 | 3 | import "testing" 4 | 5 | func TestMediaPlayerValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/mediaplayer/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "MediaPlayer/MediaPlayer.h" 4 | 5 | void importMediaPlayerProtocols() { 6 | id o; 7 | o = @protocol(MPSystemMusicPlayerController); 8 | } 9 | -------------------------------------------------------------------------------- /macos/mediaplayer/system_music_player_controller_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package mediaplayer 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A protocol for playing videos in the Music app. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/mediaplayer/mpsystemmusicplayercontroller?language=objc 12 | type PSystemMusicPlayerController interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PSystemMusicPlayerController = (*SystemMusicPlayerControllerObject)(nil) 17 | 18 | // A concrete type for the [PSystemMusicPlayerController] protocol. 19 | type SystemMusicPlayerControllerObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/metal/acceleration_structure_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package metal 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A collection of model data for GPU-accelerated intersection of rays with the model. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/metal/mtlaccelerationstructure?language=objc 12 | type PAccelerationStructure interface { 13 | // optional 14 | Size() uint 15 | HasSize() bool 16 | } 17 | 18 | // ensure impl type implements protocol interface 19 | var _ PAccelerationStructure = (*AccelerationStructureObject)(nil) 20 | 21 | // A concrete type for the [PAccelerationStructure] protocol. 22 | type AccelerationStructureObject struct { 23 | objc.Object 24 | } 25 | 26 | func (a_ AccelerationStructureObject) HasSize() bool { 27 | return a_.RespondsToSelector(objc.Sel("size")) 28 | } 29 | 30 | // The size of the acceleration structure’s memory allocation, in bytes. [Full Topic] 31 | // 32 | // [Full Topic]: https://developer.apple.com/documentation/metal/mtlaccelerationstructure/3553858-size?language=objc 33 | func (a_ AccelerationStructureObject) Size() uint { 34 | rv := objc.Call[uint](a_, objc.Sel("size")) 35 | return rv 36 | } 37 | -------------------------------------------------------------------------------- /macos/metal/argument.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package metal 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [Argument] class. 12 | var ArgumentClass = _ArgumentClass{objc.GetClass("MTLArgument")} 13 | 14 | type _ArgumentClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [Argument] class. 19 | type IArgument interface { 20 | objc.IObject 21 | } 22 | 23 | // Information about an argument of a graphics or compute function. [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/metal/mtlargument?language=objc 26 | type Argument struct { 27 | objc.Object 28 | } 29 | 30 | func ArgumentFrom(ptr unsafe.Pointer) Argument { 31 | return Argument{ 32 | Object: objc.ObjectFrom(ptr), 33 | } 34 | } 35 | 36 | func (ac _ArgumentClass) Alloc() Argument { 37 | rv := objc.Call[Argument](ac, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (ac _ArgumentClass) New() Argument { 42 | rv := objc.Call[Argument](ac, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewArgument() Argument { 48 | return ArgumentClass.New() 49 | } 50 | 51 | func (a_ Argument) Init() Argument { 52 | rv := objc.Call[Argument](a_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/metal/counter_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package metal 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // An individual counter a GPU device lists within one of its counter sets. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/metal/mtlcounter?language=objc 12 | type PCounter interface { 13 | // optional 14 | Name() string 15 | HasName() bool 16 | } 17 | 18 | // ensure impl type implements protocol interface 19 | var _ PCounter = (*CounterObject)(nil) 20 | 21 | // A concrete type for the [PCounter] protocol. 22 | type CounterObject struct { 23 | objc.Object 24 | } 25 | 26 | func (c_ CounterObject) HasName() bool { 27 | return c_.RespondsToSelector(objc.Sel("name")) 28 | } 29 | 30 | // The name of a GPU’s counter instance. [Full Topic] 31 | // 32 | // [Full Topic]: https://developer.apple.com/documentation/metal/mtlcounter/3081701-name?language=objc 33 | func (c_ CounterObject) Name() string { 34 | rv := objc.Call[string](c_, objc.Sel("name")) 35 | return rv 36 | } 37 | -------------------------------------------------------------------------------- /macos/metal/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Render advanced 3D graphics and compute data in parallel with graphics processors. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/metal?language=objc 8 | package metal 9 | -------------------------------------------------------------------------------- /macos/metal/function_stitching_attribute_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package metal 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A protocol to identify types that customize how the Metal compiler stitches a function together. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/metal/mtlfunctionstitchingattribute?language=objc 12 | type PFunctionStitchingAttribute interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PFunctionStitchingAttribute = (*FunctionStitchingAttributeObject)(nil) 17 | 18 | // A concrete type for the [PFunctionStitchingAttribute] protocol. 19 | type FunctionStitchingAttributeObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/metal/function_stitching_node_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package metal 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A protocol to identify call graph nodes. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/metal/mtlfunctionstitchingnode?language=objc 12 | type PFunctionStitchingNode interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PFunctionStitchingNode = (*FunctionStitchingNodeObject)(nil) 17 | 18 | // A concrete type for the [PFunctionStitchingNode] protocol. 19 | type FunctionStitchingNodeObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/metal/log_container_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package metal 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // A collection of logged messages, created when a Metal device runs a command buffer. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/metal/mtllogcontainer?language=objc 12 | type PLogContainer interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PLogContainer = (*LogContainerObject)(nil) 17 | 18 | // A concrete type for the [PLogContainer] protocol. 19 | type LogContainerObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/metal/metal.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package metal 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework Metal 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/metal/metal_custom.go: -------------------------------------------------------------------------------- 1 | package metal 2 | 3 | import "unsafe" 4 | 5 | type AutoreleasedComputePipelineReflection unsafe.Pointer 6 | type AutoreleasedRenderPipelineReflection unsafe.Pointer 7 | 8 | type Coordinate2D = SamplePosition 9 | -------------------------------------------------------------------------------- /macos/metal/metal_test.go: -------------------------------------------------------------------------------- 1 | package metal 2 | 3 | import "testing" 4 | 5 | func TestMetalValid(t *testing.T) { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /macos/mps/aliastypes.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package mps 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/macos/foundation" 7 | ) 8 | 9 | // A notification when an asynchronous graph execution has finished. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/metalperformanceshaders/mpsnngraphcompletionhandler?language=objc 12 | type NNGraphCompletionHandler = func(result Image, error foundation.Error) 13 | 14 | // A block of code that's invoked when an operation on an acceleration structure has completed. [Full Topic] 15 | // 16 | // [Full Topic]: https://developer.apple.com/documentation/metalperformanceshaders/mpsaccelerationstructurecompletionhandler?language=objc 17 | type AccelerationStructureCompletionHandler = func(arg0 AccelerationStructure) 18 | 19 | // [Full Topic] 20 | // 21 | // [Full Topic]: https://developer.apple.com/documentation/metalperformanceshaders/mpsgradientnodeblock?language=objc 22 | type GradientNodeBlock = func(gradientNode NNFilterNode, inferenceNode NNFilterNode, inferenceSource NNImageNode, gradientSource NNImageNode) 23 | -------------------------------------------------------------------------------- /macos/mps/device_provider_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package mps 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/macos/metal" 7 | "github.com/progrium/darwinkit/objc" 8 | ) 9 | 10 | // An interface that enables the setting of a Metal device for unarchived objects. [Full Topic] 11 | // 12 | // [Full Topic]: https://developer.apple.com/documentation/metalperformanceshaders/mpsdeviceprovider?language=objc 13 | type PDeviceProvider interface { 14 | // optional 15 | MpsMTLDevice() metal.DeviceObject 16 | HasMpsMTLDevice() bool 17 | } 18 | 19 | // ensure impl type implements protocol interface 20 | var _ PDeviceProvider = (*DeviceProviderObject)(nil) 21 | 22 | // A concrete type for the [PDeviceProvider] protocol. 23 | type DeviceProviderObject struct { 24 | objc.Object 25 | } 26 | 27 | func (d_ DeviceProviderObject) HasMpsMTLDevice() bool { 28 | return d_.RespondsToSelector(objc.Sel("mpsMTLDevice")) 29 | } 30 | 31 | // [Full Topic] 32 | // 33 | // [Full Topic]: https://developer.apple.com/documentation/metalperformanceshaders/mpsdeviceprovider/2875211-mpsmtldevice?language=objc 34 | func (d_ DeviceProviderObject) MpsMTLDevice() metal.DeviceObject { 35 | rv := objc.Call[metal.DeviceObject](d_, objc.Sel("mpsMTLDevice")) 36 | return rv 37 | } 38 | -------------------------------------------------------------------------------- /macos/mps/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Optimize graphics and compute performance with kernels that are fine-tuned for the unique characteristics of each Metal GPU family. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/metalperformanceshaders?language=objc 8 | package mps 9 | -------------------------------------------------------------------------------- /macos/mps/handle_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package mps 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // The protocol that provides resource identification. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/metalperformanceshaders/mpshandle?language=objc 12 | type PHandle interface { 13 | // optional 14 | Label() string 15 | HasLabel() bool 16 | } 17 | 18 | // ensure impl type implements protocol interface 19 | var _ PHandle = (*HandleObject)(nil) 20 | 21 | // A concrete type for the [PHandle] protocol. 22 | type HandleObject struct { 23 | objc.Object 24 | } 25 | 26 | func (h_ HandleObject) HasLabel() bool { 27 | return h_.RespondsToSelector(objc.Sel("label")) 28 | } 29 | 30 | // [Full Topic] 31 | // 32 | // [Full Topic]: https://developer.apple.com/documentation/metalperformanceshaders/mpshandle/2866414-label?language=objc 33 | func (h_ HandleObject) Label() string { 34 | rv := objc.Call[string](h_, objc.Sel("label")) 35 | return rv 36 | } 37 | -------------------------------------------------------------------------------- /macos/mps/mps.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package mps 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework MetalPerformanceShaders 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/mps/mps_custom.go: -------------------------------------------------------------------------------- 1 | package mps 2 | 3 | import "unsafe" 4 | 5 | // https://developer.apple.com/documentation/metalperformanceshaders/mpscopyallocator?language=objc 6 | // todo: should be a function signature 7 | type CopyAllocator unsafe.Pointer 8 | -------------------------------------------------------------------------------- /macos/mps/mps_test.go: -------------------------------------------------------------------------------- 1 | package mps 2 | 3 | import "testing" 4 | 5 | func TestMPSValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/mps/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "MetalPerformanceShaders/MetalPerformanceShaders.h" 4 | 5 | void importMetalPerformanceShadersProtocols() { 6 | id o; 7 | o = @protocol(MPSCNNBatchNormalizationDataSource); 8 | o = @protocol(MPSCNNConvolutionDataSource); 9 | o = @protocol(MPSCNNGroupNormalizationDataSource); 10 | o = @protocol(MPSCNNInstanceNormalizationDataSource); 11 | o = @protocol(MPSDeviceProvider); 12 | o = @protocol(MPSHandle); 13 | o = @protocol(MPSHeapProvider); 14 | o = @protocol(MPSImageAllocator); 15 | o = @protocol(MPSImageSizeEncodingState); 16 | o = @protocol(MPSImageTransformProvider); 17 | o = @protocol(MPSNDArrayAllocator); 18 | o = @protocol(MPSNNGramMatrixCallback); 19 | o = @protocol(MPSNNLossCallback); 20 | o = @protocol(MPSNNPadding); 21 | o = @protocol(MPSNNTrainableNode); 22 | o = @protocol(MPSSVGFTextureAllocator); 23 | } 24 | -------------------------------------------------------------------------------- /macos/mpsgraph/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Build, compile, and execute customized multidimensional compute graphs for linear algebra, machine learning, computer vision, and other similar domains. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/metalperformanceshadersgraph?language=objc 8 | package mpsgraph 9 | -------------------------------------------------------------------------------- /macos/mpsgraph/mpsgraph.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package mpsgraph 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework MetalPerformanceShadersGraph 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/mpsgraph/mpsgraph_test.go: -------------------------------------------------------------------------------- 1 | package mpsgraph 2 | 3 | import "testing" 4 | 5 | func TestMPSGraphValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/mpsgraph/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "MetalPerformanceShadersGraph/MetalPerformanceShadersGraph.h" 4 | 5 | void importMetalPerformanceShadersGraphProtocols() { 6 | id o; 7 | } 8 | -------------------------------------------------------------------------------- /macos/mpsgraph/type.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package mpsgraph 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [Type] class. 12 | var TypeClass = _TypeClass{objc.GetClass("MPSGraphType")} 13 | 14 | type _TypeClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [Type] class. 19 | type IType interface { 20 | objc.IObject 21 | } 22 | 23 | // [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/metalperformanceshadersgraph/mpsgraphtype?language=objc 26 | type Type struct { 27 | objc.Object 28 | } 29 | 30 | func TypeFrom(ptr unsafe.Pointer) Type { 31 | return Type{ 32 | Object: objc.ObjectFrom(ptr), 33 | } 34 | } 35 | 36 | func (tc _TypeClass) Alloc() Type { 37 | rv := objc.Call[Type](tc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (tc _TypeClass) New() Type { 42 | rv := objc.Call[Type](tc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewType() Type { 48 | return TypeClass.New() 49 | } 50 | 51 | func (t_ Type) Init() Type { 52 | rv := objc.Call[Type](t_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/quartz/aliastypes.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package quartz 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // [Full Topic] 12 | // 13 | // [Full Topic]: https://developer.apple.com/documentation/quartz/qcplugintexturereleasecallback?language=objc 14 | type PlugInTextureReleaseCallback = func(cgl_ctx objc.Object, name objc.Object, context unsafe.Pointer) 15 | 16 | // [Full Topic] 17 | // 18 | // [Full Topic]: https://developer.apple.com/documentation/quartz/qcpluginbufferreleasecallback?language=objc 19 | type PlugInBufferReleaseCallback = func(address unsafe.Pointer, context unsafe.Pointer) 20 | -------------------------------------------------------------------------------- /macos/quartz/composition_renderer_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package quartz 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // The QCRenderer protocol defines the methods used to pass data to the input ports or retrieve data from the output ports of the root patch of a Quartz Composer composition. This protocol is adopted by the QCRenderer, QCView, and QCCompositionLayer classes. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/quartz/qccompositionrenderer?language=objc 12 | type PCompositionRenderer interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PCompositionRenderer = (*CompositionRendererObject)(nil) 17 | 18 | // A concrete type for the [PCompositionRenderer] protocol. 19 | type CompositionRendererObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/quartz/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Allow users to browse, edit, and save images, using slideshows and Core Image filters. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/quartz?language=objc 8 | package quartz 9 | -------------------------------------------------------------------------------- /macos/quartz/plug_in_context_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package quartz 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // The QCPlugInContext protocol defines methods that you use only from within the execution method ([quartz/qcplugin/execute]) of a QCPlugIn object. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/quartz/qcplugincontext?language=objc 12 | type PPlugInContext interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PPlugInContext = (*PlugInContextObject)(nil) 17 | 18 | // A concrete type for the [PPlugInContext] protocol. 19 | type PlugInContextObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/quartz/plug_in_input_image_source_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package quartz 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // The QCPlugInInputImageSource protocol eliminates the need to use explicit image types for the image input ports on your custom patch. Not only does using the protocol avoid restrictions of a specific image type, but it avoids impedance mismatches, and provides better performance by deferring pixel computation until it is needed. When you need to access the pixels in an image, you simply convert the image to a representation (texture or buffer) using one of the methods defined by the QCPlugInInputImageSource protocol. Use a texture representation when you want to use input images on the GPU. Use a buffer representation when you want to use input images on the CPU. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/quartz/qcplugininputimagesource?language=objc 12 | type PPlugInInputImageSource interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PPlugInInputImageSource = (*PlugInInputImageSourceObject)(nil) 17 | 18 | // A concrete type for the [PPlugInInputImageSource] protocol. 19 | type PlugInInputImageSourceObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/quartz/plug_in_output_image_provider_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package quartz 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // The QCPlugInOuputImageProvider protocol eliminates the need to use explicit image types for the image output ports on a custom patch. The methods in this protocol are called by the Quartz Composer engine when the output image is needed. If your custom patch has an image output port, you need to implement the appropriate methods for rendering image data and to supply information about the rendering destination and the image bounds. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/quartz/qcpluginoutputimageprovider?language=objc 12 | type PPlugInOutputImageProvider interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PPlugInOutputImageProvider = (*PlugInOutputImageProviderObject)(nil) 17 | 18 | // A concrete type for the [PPlugInOutputImageProvider] protocol. 19 | type PlugInOutputImageProviderObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/quartz/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "Quartz/Quartz.h" 4 | 5 | void importQuartzProtocols() { 6 | id o; 7 | o = @protocol(IKCameraDeviceViewDelegate); 8 | o = @protocol(IKDeviceBrowserViewDelegate); 9 | o = @protocol(IKFilterCustomUIProvider); 10 | o = @protocol(IKImageEditPanelDataSource); 11 | o = @protocol(IKScannerDeviceViewDelegate); 12 | o = @protocol(IKSlideshowDataSource); 13 | o = @protocol(QCCompositionRenderer); 14 | o = @protocol(QCPlugInContext); 15 | o = @protocol(QCPlugInInputImageSource); 16 | o = @protocol(QCPlugInOutputImageProvider); 17 | } 18 | -------------------------------------------------------------------------------- /macos/quartz/quartz.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package quartz 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework Quartz 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/quartz/quartz_test.go: -------------------------------------------------------------------------------- 1 | package quartz 2 | 3 | import "testing" 4 | 5 | func TestQuartzValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/quartzcore/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Render, compose, and animate visual elements. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/quartzcore?language=objc 8 | package quartzcore 9 | -------------------------------------------------------------------------------- /macos/quartzcore/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "QuartzCore/QuartzCore.h" 4 | 5 | void importQuartzCoreProtocols() { 6 | id o; 7 | o = @protocol(CAAction); 8 | o = @protocol(CAAnimationDelegate); 9 | o = @protocol(CALayerDelegate); 10 | o = @protocol(CALayoutManager); 11 | o = @protocol(CAMediaTiming); 12 | o = @protocol(CAMetalDrawable); 13 | } 14 | -------------------------------------------------------------------------------- /macos/quartzcore/quartzcore.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package quartzcore 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework QuartzCore 6 | import "C" 7 | 8 | func init() { 9 | // void importQuartzCoreProtocols(); 10 | // C.importQuartzCoreProtocols() 11 | } 12 | -------------------------------------------------------------------------------- /macos/quartzcore/quartzcore_structs.go: -------------------------------------------------------------------------------- 1 | package quartzcore 2 | 3 | // [Full Topic] 4 | // 5 | // [Full Topic]: https://developer.apple.com/documentation/quartzcore/caframeraterange?language=objc 6 | type FrameRateRange struct { 7 | Minimum float32 8 | Maximum float32 9 | Preferred float32 10 | } 11 | 12 | // The standard transform matrix used throughout Core Animation. [Full Topic] 13 | // 14 | // [Full Topic]: https://developer.apple.com/documentation/quartzcore/catransform3d?language=objc 15 | type Transform3D struct { 16 | M11 float64 17 | M12 float64 18 | M13 float64 19 | M14 float64 20 | M21 float64 21 | M22 float64 22 | M23 float64 23 | M24 float64 24 | M31 float64 25 | M32 float64 26 | M33 float64 27 | M34 float64 28 | M41 float64 29 | M42 float64 30 | M43 float64 31 | M44 float64 32 | } 33 | -------------------------------------------------------------------------------- /macos/quartzcore/quartzcore_test.go: -------------------------------------------------------------------------------- 1 | package quartzcore 2 | 3 | import "testing" 4 | 5 | func TestQuartzCoreValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/sysconfig/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Allow applications to access a device’s network configuration settings. Determine the reachability of the device, such as whether Wi-Fi or cell connectivity are active. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/systemconfiguration?language=objc 8 | package sysconfig 9 | -------------------------------------------------------------------------------- /macos/sysconfig/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "SystemConfiguration/SystemConfiguration.h" 4 | 5 | void importSystemConfigurationProtocols() { 6 | id o; 7 | } 8 | -------------------------------------------------------------------------------- /macos/sysconfig/sysconfig.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package sysconfig 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework SystemConfiguration 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/sysconfig/sysconfig_custom.go: -------------------------------------------------------------------------------- 1 | package sysconfig 2 | -------------------------------------------------------------------------------- /macos/sysconfig/sysconfig_test.go: -------------------------------------------------------------------------------- 1 | package sysconfig 2 | 3 | import "testing" 4 | 5 | func TestSystemConfigurationValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/uti/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Provide uniform type identifiers that describe file types for storage or transfer. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/uniformtypeidentifiers?language=objc 8 | package uti 9 | -------------------------------------------------------------------------------- /macos/uti/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "UniformTypeIdentifiers/UniformTypeIdentifiers.h" 4 | 5 | void importUniformTypeIdentifiersProtocols() { 6 | id o; 7 | } 8 | -------------------------------------------------------------------------------- /macos/uti/uti.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package uti 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework UniformTypeIdentifiers 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/uti/uti_test.go: -------------------------------------------------------------------------------- 1 | package uti 2 | 3 | import "testing" 4 | 5 | func TestUTIValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/vision/aliastypes.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package vision 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/macos/foundation" 7 | ) 8 | 9 | // A block executed at intervals during the processing of a Vision request. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/vision/vnrequestprogresshandler?language=objc 12 | type RequestProgressHandler = func(request Request, fractionCompleted float64, error foundation.Error) 13 | 14 | // A type alias to encapsulate the syntax for the completion handler the system calls after the request finishes processing. [Full Topic] 15 | // 16 | // [Full Topic]: https://developer.apple.com/documentation/vision/vnrequestcompletionhandler?language=objc 17 | type RequestCompletionHandler = func(request Request, error foundation.Error) 18 | -------------------------------------------------------------------------------- /macos/vision/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Apply computer vision algorithms to perform a variety of tasks on input images and video. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/vision?language=objc 8 | package vision 9 | -------------------------------------------------------------------------------- /macos/vision/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "Vision/Vision.h" 4 | 5 | void importVisionProtocols() { 6 | id o; 7 | o = @protocol(VNFaceObservationAccepting); 8 | o = @protocol(VNRequestProgressProviding); 9 | o = @protocol(VNRequestRevisionProviding); 10 | } 11 | -------------------------------------------------------------------------------- /macos/vision/vision.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package vision 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework Vision 6 | import "C" 7 | -------------------------------------------------------------------------------- /macos/vision/vision_test.go: -------------------------------------------------------------------------------- 1 | package vision 2 | 3 | import "testing" 4 | 5 | func TestVisionValid(t *testing.T) {} 6 | -------------------------------------------------------------------------------- /macos/webkit/aliastypes.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/macos/appkit" 7 | "github.com/progrium/darwinkit/macos/foundation" 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // A completion handler for getting an asynchronous attributed string. [Full Topic] 12 | // 13 | // [Full Topic]: https://developer.apple.com/documentation/webkit/nsattributedstringcompletionhandler?language=objc 14 | type AttributedStringCompletionHandler = func(arg0 foundation.AttributedString, arg1 map[appkit.AttributedStringDocumentAttributeKey]objc.Object, arg2 foundation.Error) 15 | -------------------------------------------------------------------------------- /macos/webkit/doc.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | // Integrate web content seamlessly into your app, and customize content interactions to meet your app’s needs. 4 | // 5 | // [Apple Documentation] 6 | // 7 | // [Apple Documentation]: https://developer.apple.com/documentation/webkit?language=objc 8 | package webkit 9 | -------------------------------------------------------------------------------- /macos/webkit/dom_attr.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [DOMAttr] class. 12 | var DOMAttrClass = _DOMAttrClass{objc.GetClass("DOMAttr")} 13 | 14 | type _DOMAttrClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [DOMAttr] class. 19 | type IDOMAttr interface { 20 | IDOMNode 21 | } 22 | 23 | // [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domattr?language=objc 26 | type DOMAttr struct { 27 | DOMNode 28 | } 29 | 30 | func DOMAttrFrom(ptr unsafe.Pointer) DOMAttr { 31 | return DOMAttr{ 32 | DOMNode: DOMNodeFrom(ptr), 33 | } 34 | } 35 | 36 | func (dc _DOMAttrClass) Alloc() DOMAttr { 37 | rv := objc.Call[DOMAttr](dc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (dc _DOMAttrClass) New() DOMAttr { 42 | rv := objc.Call[DOMAttr](dc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewDOMAttr() DOMAttr { 48 | return DOMAttrClass.New() 49 | } 50 | 51 | func (d_ DOMAttr) Init() DOMAttr { 52 | rv := objc.Call[DOMAttr](d_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/webkit/dom_blob.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [DOMBlob] class. 12 | var DOMBlobClass = _DOMBlobClass{objc.GetClass("DOMBlob")} 13 | 14 | type _DOMBlobClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [DOMBlob] class. 19 | type IDOMBlob interface { 20 | IDOMObject 21 | } 22 | 23 | // [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domblob?language=objc 26 | type DOMBlob struct { 27 | DOMObject 28 | } 29 | 30 | func DOMBlobFrom(ptr unsafe.Pointer) DOMBlob { 31 | return DOMBlob{ 32 | DOMObject: DOMObjectFrom(ptr), 33 | } 34 | } 35 | 36 | func (dc _DOMBlobClass) Alloc() DOMBlob { 37 | rv := objc.Call[DOMBlob](dc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (dc _DOMBlobClass) New() DOMBlob { 42 | rv := objc.Call[DOMBlob](dc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewDOMBlob() DOMBlob { 48 | return DOMBlobClass.New() 49 | } 50 | 51 | func (d_ DOMBlob) Init() DOMBlob { 52 | rv := objc.Call[DOMBlob](d_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/webkit/dom_counter.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [DOMCounter] class. 12 | var DOMCounterClass = _DOMCounterClass{objc.GetClass("DOMCounter")} 13 | 14 | type _DOMCounterClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [DOMCounter] class. 19 | type IDOMCounter interface { 20 | IDOMObject 21 | } 22 | 23 | // [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domcounter?language=objc 26 | type DOMCounter struct { 27 | DOMObject 28 | } 29 | 30 | func DOMCounterFrom(ptr unsafe.Pointer) DOMCounter { 31 | return DOMCounter{ 32 | DOMObject: DOMObjectFrom(ptr), 33 | } 34 | } 35 | 36 | func (dc _DOMCounterClass) Alloc() DOMCounter { 37 | rv := objc.Call[DOMCounter](dc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (dc _DOMCounterClass) New() DOMCounter { 42 | rv := objc.Call[DOMCounter](dc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewDOMCounter() DOMCounter { 48 | return DOMCounterClass.New() 49 | } 50 | 51 | func (d_ DOMCounter) Init() DOMCounter { 52 | rv := objc.Call[DOMCounter](d_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/webkit/dom_document.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [DOMDocument] class. 12 | var DOMDocumentClass = _DOMDocumentClass{objc.GetClass("DOMDocument")} 13 | 14 | type _DOMDocumentClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [DOMDocument] class. 19 | type IDOMDocument interface { 20 | IDOMNode 21 | } 22 | 23 | // [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domdocument?language=objc 26 | type DOMDocument struct { 27 | DOMNode 28 | } 29 | 30 | func DOMDocumentFrom(ptr unsafe.Pointer) DOMDocument { 31 | return DOMDocument{ 32 | DOMNode: DOMNodeFrom(ptr), 33 | } 34 | } 35 | 36 | func (dc _DOMDocumentClass) Alloc() DOMDocument { 37 | rv := objc.Call[DOMDocument](dc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (dc _DOMDocumentClass) New() DOMDocument { 42 | rv := objc.Call[DOMDocument](dc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewDOMDocument() DOMDocument { 48 | return DOMDocumentClass.New() 49 | } 50 | 51 | func (d_ DOMDocument) Init() DOMDocument { 52 | rv := objc.Call[DOMDocument](d_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/webkit/dom_entity.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [DOMEntity] class. 12 | var DOMEntityClass = _DOMEntityClass{objc.GetClass("DOMEntity")} 13 | 14 | type _DOMEntityClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [DOMEntity] class. 19 | type IDOMEntity interface { 20 | IDOMNode 21 | } 22 | 23 | // [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domentity?language=objc 26 | type DOMEntity struct { 27 | DOMNode 28 | } 29 | 30 | func DOMEntityFrom(ptr unsafe.Pointer) DOMEntity { 31 | return DOMEntity{ 32 | DOMNode: DOMNodeFrom(ptr), 33 | } 34 | } 35 | 36 | func (dc _DOMEntityClass) Alloc() DOMEntity { 37 | rv := objc.Call[DOMEntity](dc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (dc _DOMEntityClass) New() DOMEntity { 42 | rv := objc.Call[DOMEntity](dc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewDOMEntity() DOMEntity { 48 | return DOMEntityClass.New() 49 | } 50 | 51 | func (d_ DOMEntity) Init() DOMEntity { 52 | rv := objc.Call[DOMEntity](d_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/webkit/dom_event.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [DOMEvent] class. 12 | var DOMEventClass = _DOMEventClass{objc.GetClass("DOMEvent")} 13 | 14 | type _DOMEventClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [DOMEvent] class. 19 | type IDOMEvent interface { 20 | IDOMObject 21 | } 22 | 23 | // [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domevent?language=objc 26 | type DOMEvent struct { 27 | DOMObject 28 | } 29 | 30 | func DOMEventFrom(ptr unsafe.Pointer) DOMEvent { 31 | return DOMEvent{ 32 | DOMObject: DOMObjectFrom(ptr), 33 | } 34 | } 35 | 36 | func (dc _DOMEventClass) Alloc() DOMEvent { 37 | rv := objc.Call[DOMEvent](dc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (dc _DOMEventClass) New() DOMEvent { 42 | rv := objc.Call[DOMEvent](dc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewDOMEvent() DOMEvent { 48 | return DOMEventClass.New() 49 | } 50 | 51 | func (d_ DOMEvent) Init() DOMEvent { 52 | rv := objc.Call[DOMEvent](d_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/webkit/dom_event_listener_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domeventlistener?language=objc 12 | type PDOMEventListener interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PDOMEventListener = (*DOMEventListenerObject)(nil) 17 | 18 | // A concrete type for the [PDOMEventListener] protocol. 19 | type DOMEventListenerObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/webkit/dom_event_target_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domeventtarget?language=objc 12 | type PDOMEventTarget interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PDOMEventTarget = (*DOMEventTargetObject)(nil) 17 | 18 | // A concrete type for the [PDOMEventTarget] protocol. 19 | type DOMEventTargetObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/webkit/dom_file.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [DOMFile] class. 12 | var DOMFileClass = _DOMFileClass{objc.GetClass("DOMFile")} 13 | 14 | type _DOMFileClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [DOMFile] class. 19 | type IDOMFile interface { 20 | IDOMBlob 21 | } 22 | 23 | // [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domfile?language=objc 26 | type DOMFile struct { 27 | DOMBlob 28 | } 29 | 30 | func DOMFileFrom(ptr unsafe.Pointer) DOMFile { 31 | return DOMFile{ 32 | DOMBlob: DOMBlobFrom(ptr), 33 | } 34 | } 35 | 36 | func (dc _DOMFileClass) Alloc() DOMFile { 37 | rv := objc.Call[DOMFile](dc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (dc _DOMFileClass) New() DOMFile { 42 | rv := objc.Call[DOMFile](dc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewDOMFile() DOMFile { 48 | return DOMFileClass.New() 49 | } 50 | 51 | func (d_ DOMFile) Init() DOMFile { 52 | rv := objc.Call[DOMFile](d_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/webkit/dom_node_filter_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domnodefilter?language=objc 12 | type PDOMNodeFilter interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PDOMNodeFilter = (*DOMNodeFilterObject)(nil) 17 | 18 | // A concrete type for the [PDOMNodeFilter] protocol. 19 | type DOMNodeFilterObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/webkit/dom_range.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [DOMRange] class. 12 | var DOMRangeClass = _DOMRangeClass{objc.GetClass("DOMRange")} 13 | 14 | type _DOMRangeClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [DOMRange] class. 19 | type IDOMRange interface { 20 | IDOMObject 21 | } 22 | 23 | // [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domrange?language=objc 26 | type DOMRange struct { 27 | DOMObject 28 | } 29 | 30 | func DOMRangeFrom(ptr unsafe.Pointer) DOMRange { 31 | return DOMRange{ 32 | DOMObject: DOMObjectFrom(ptr), 33 | } 34 | } 35 | 36 | func (dc _DOMRangeClass) Alloc() DOMRange { 37 | rv := objc.Call[DOMRange](dc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (dc _DOMRangeClass) New() DOMRange { 42 | rv := objc.Call[DOMRange](dc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewDOMRange() DOMRange { 48 | return DOMRangeClass.New() 49 | } 50 | 51 | func (d_ DOMRange) Init() DOMRange { 52 | rv := objc.Call[DOMRange](d_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/webkit/dom_rect.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [DOMRect] class. 12 | var DOMRectClass = _DOMRectClass{objc.GetClass("DOMRect")} 13 | 14 | type _DOMRectClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [DOMRect] class. 19 | type IDOMRect interface { 20 | IDOMObject 21 | } 22 | 23 | // [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domrect?language=objc 26 | type DOMRect struct { 27 | DOMObject 28 | } 29 | 30 | func DOMRectFrom(ptr unsafe.Pointer) DOMRect { 31 | return DOMRect{ 32 | DOMObject: DOMObjectFrom(ptr), 33 | } 34 | } 35 | 36 | func (dc _DOMRectClass) Alloc() DOMRect { 37 | rv := objc.Call[DOMRect](dc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (dc _DOMRectClass) New() DOMRect { 42 | rv := objc.Call[DOMRect](dc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewDOMRect() DOMRect { 48 | return DOMRectClass.New() 49 | } 50 | 51 | func (d_ DOMRect) Init() DOMRect { 52 | rv := objc.Call[DOMRect](d_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/webkit/dom_text.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [DOMText] class. 12 | var DOMTextClass = _DOMTextClass{objc.GetClass("DOMText")} 13 | 14 | type _DOMTextClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [DOMText] class. 19 | type IDOMText interface { 20 | IDOMCharacterData 21 | } 22 | 23 | // [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domtext?language=objc 26 | type DOMText struct { 27 | DOMCharacterData 28 | } 29 | 30 | func DOMTextFrom(ptr unsafe.Pointer) DOMText { 31 | return DOMText{ 32 | DOMCharacterData: DOMCharacterDataFrom(ptr), 33 | } 34 | } 35 | 36 | func (dc _DOMTextClass) Alloc() DOMText { 37 | rv := objc.Call[DOMText](dc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (dc _DOMTextClass) New() DOMText { 42 | rv := objc.Call[DOMText](dc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewDOMText() DOMText { 48 | return DOMTextClass.New() 49 | } 50 | 51 | func (d_ DOMText) Init() DOMText { 52 | rv := objc.Call[DOMText](d_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/webkit/domcss_rule.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [DOMCSSRule] class. 12 | var DOMCSSRuleClass = _DOMCSSRuleClass{objc.GetClass("DOMCSSRule")} 13 | 14 | type _DOMCSSRuleClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [DOMCSSRule] class. 19 | type IDOMCSSRule interface { 20 | IDOMObject 21 | } 22 | 23 | // [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domcssrule?language=objc 26 | type DOMCSSRule struct { 27 | DOMObject 28 | } 29 | 30 | func DOMCSSRuleFrom(ptr unsafe.Pointer) DOMCSSRule { 31 | return DOMCSSRule{ 32 | DOMObject: DOMObjectFrom(ptr), 33 | } 34 | } 35 | 36 | func (dc _DOMCSSRuleClass) Alloc() DOMCSSRule { 37 | rv := objc.Call[DOMCSSRule](dc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (dc _DOMCSSRuleClass) New() DOMCSSRule { 42 | rv := objc.Call[DOMCSSRule](dc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewDOMCSSRule() DOMCSSRule { 48 | return DOMCSSRuleClass.New() 49 | } 50 | 51 | func (d_ DOMCSSRule) Init() DOMCSSRule { 52 | rv := objc.Call[DOMCSSRule](d_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/webkit/domui_event.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "unsafe" 7 | 8 | "github.com/progrium/darwinkit/objc" 9 | ) 10 | 11 | // The class instance for the [DOMUIEvent] class. 12 | var DOMUIEventClass = _DOMUIEventClass{objc.GetClass("DOMUIEvent")} 13 | 14 | type _DOMUIEventClass struct { 15 | objc.Class 16 | } 17 | 18 | // An interface definition for the [DOMUIEvent] class. 19 | type IDOMUIEvent interface { 20 | IDOMEvent 21 | } 22 | 23 | // [Full Topic] 24 | // 25 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domuievent?language=objc 26 | type DOMUIEvent struct { 27 | DOMEvent 28 | } 29 | 30 | func DOMUIEventFrom(ptr unsafe.Pointer) DOMUIEvent { 31 | return DOMUIEvent{ 32 | DOMEvent: DOMEventFrom(ptr), 33 | } 34 | } 35 | 36 | func (dc _DOMUIEventClass) Alloc() DOMUIEvent { 37 | rv := objc.Call[DOMUIEvent](dc, objc.Sel("alloc")) 38 | return rv 39 | } 40 | 41 | func (dc _DOMUIEventClass) New() DOMUIEvent { 42 | rv := objc.Call[DOMUIEvent](dc, objc.Sel("new")) 43 | rv.Autorelease() 44 | return rv 45 | } 46 | 47 | func NewDOMUIEvent() DOMUIEvent { 48 | return DOMUIEventClass.New() 49 | } 50 | 51 | func (d_ DOMUIEvent) Init() DOMUIEvent { 52 | rv := objc.Call[DOMUIEvent](d_, objc.Sel("init")) 53 | return rv 54 | } 55 | -------------------------------------------------------------------------------- /macos/webkit/domx_path_ns_resolver_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/domxpathnsresolver?language=objc 12 | type PDOMXPathNSResolver interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PDOMXPathNSResolver = (*DOMXPathNSResolverObject)(nil) 17 | 18 | // A concrete type for the [PDOMXPathNSResolver] protocol. 19 | type DOMXPathNSResolverObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/webkit/protocols.gen.m: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | #import "WebKit/WebKit.h" 4 | 5 | void importWebKitProtocols() { 6 | id o; 7 | o = @protocol(DOMEventListener); 8 | o = @protocol(DOMEventTarget); 9 | o = @protocol(DOMNodeFilter); 10 | o = @protocol(DOMXPathNSResolver); 11 | o = @protocol(WKDownloadDelegate); 12 | o = @protocol(WKHTTPCookieStoreObserver); 13 | o = @protocol(WKNavigationDelegate); 14 | o = @protocol(WKScriptMessageHandler); 15 | o = @protocol(WKScriptMessageHandlerWithReply); 16 | o = @protocol(WKUIDelegate); 17 | o = @protocol(WKURLSchemeHandler); 18 | o = @protocol(WKURLSchemeTask); 19 | o = @protocol(WebDocumentRepresentation); 20 | o = @protocol(WebDocumentSearching); 21 | o = @protocol(WebDocumentText); 22 | o = @protocol(WebDocumentView); 23 | o = @protocol(WebDownloadDelegate); 24 | o = @protocol(WebEditingDelegate); 25 | o = @protocol(WebFrameLoadDelegate); 26 | o = @protocol(WebOpenPanelResultListener); 27 | o = @protocol(WebPlugInViewFactory); 28 | o = @protocol(WebPolicyDecisionListener); 29 | o = @protocol(WebPolicyDelegate); 30 | o = @protocol(WebResourceLoadDelegate); 31 | o = @protocol(WebUIDelegate); 32 | } 33 | -------------------------------------------------------------------------------- /macos/webkit/script_message_handler_with_reply_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | -------------------------------------------------------------------------------- /macos/webkit/web_document_representation_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // This protocol is adopted by document representation classes that handle specific MIME types. You can implement your own document view classes and document representation classes to render data for specific MIME types, and register those classes using the WebFrame [webkit/webview/registerviewclass] method. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/webdocumentrepresentation?language=objc 12 | type PWebDocumentRepresentation interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PWebDocumentRepresentation = (*WebDocumentRepresentationObject)(nil) 17 | 18 | // A concrete type for the [PWebDocumentRepresentation] protocol. 19 | type WebDocumentRepresentationObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/webkit/web_document_searching_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // WebDocumentSearching is an optional protocol for document view objects that support searching. Classes that adopt this protocol should also adopt WebDocumentView and inherit from NSView. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/webdocumentsearching?language=objc 12 | type PWebDocumentSearching interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PWebDocumentSearching = (*WebDocumentSearchingObject)(nil) 17 | 18 | // A concrete type for the [PWebDocumentSearching] protocol. 19 | type WebDocumentSearchingObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/webkit/web_document_text_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // WebDocumentText is an optional protocol for document view objects that display text. This protocol defines methods for accessing document content as strings, and methods for text selection. Classes that adopt this protocol should also adopt WebDocumentView and inherit from NSView. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/webdocumenttext?language=objc 12 | type PWebDocumentText interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PWebDocumentText = (*WebDocumentTextObject)(nil) 17 | 18 | // A concrete type for the [PWebDocumentText] protocol. 19 | type WebDocumentTextObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/webkit/web_document_view_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // This protocol is adopted by the document view of a WebFrameView. You can extend WebKit to support additional MIME types by implementing your own document view and document representation classes to render data for specific MIME types. You register those classes using the WebFrame [webkit/webview/registerviewclass] method. Classes that adopt this protocol are expected to be subclasses of NSView. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/webdocumentview?language=objc 12 | type PWebDocumentView interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PWebDocumentView = (*WebDocumentViewObject)(nil) 17 | 18 | // A concrete type for the [PWebDocumentView] protocol. 19 | type WebDocumentViewObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/webkit/web_download_delegate.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // The WebDownloadDelegate protocol declares one additional method for delegates of WebDownload. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/webdownloaddelegate?language=objc 12 | type PWebDownloadDelegate interface { 13 | } 14 | 15 | // A delegate implementation builder for the [PWebDownloadDelegate] protocol. 16 | type WebDownloadDelegate struct { 17 | } 18 | 19 | // ensure impl type implements protocol interface 20 | var _ PWebDownloadDelegate = (*WebDownloadDelegateObject)(nil) 21 | 22 | // A concrete type for the [PWebDownloadDelegate] protocol. 23 | type WebDownloadDelegateObject struct { 24 | objc.Object 25 | } 26 | -------------------------------------------------------------------------------- /macos/webkit/web_editing_delegate.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/webeditingdelegate?language=objc 12 | type PWebEditingDelegate interface { 13 | } 14 | 15 | // A delegate implementation builder for the [PWebEditingDelegate] protocol. 16 | type WebEditingDelegate struct { 17 | } 18 | 19 | // ensure impl type implements protocol interface 20 | var _ PWebEditingDelegate = (*WebEditingDelegateObject)(nil) 21 | 22 | // A concrete type for the [PWebEditingDelegate] protocol. 23 | type WebEditingDelegateObject struct { 24 | objc.Object 25 | } 26 | -------------------------------------------------------------------------------- /macos/webkit/web_frame_load_delegate.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/webframeloaddelegate?language=objc 12 | type PWebFrameLoadDelegate interface { 13 | } 14 | 15 | // A delegate implementation builder for the [PWebFrameLoadDelegate] protocol. 16 | type WebFrameLoadDelegate struct { 17 | } 18 | 19 | // ensure impl type implements protocol interface 20 | var _ PWebFrameLoadDelegate = (*WebFrameLoadDelegateObject)(nil) 21 | 22 | // A concrete type for the [PWebFrameLoadDelegate] protocol. 23 | type WebFrameLoadDelegateObject struct { 24 | objc.Object 25 | } 26 | -------------------------------------------------------------------------------- /macos/webkit/web_open_panel_result_listener_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // WebView user interface delegates that implement the webView:runOpenPanelForFileButtonWithResultListener: method use the methods defined in this protocol to communicate with the listener object. The methods allow the delegate to send a cancel message, or set the selected file name. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/webopenpanelresultlistener?language=objc 12 | type PWebOpenPanelResultListener interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PWebOpenPanelResultListener = (*WebOpenPanelResultListenerObject)(nil) 17 | 18 | // A concrete type for the [PWebOpenPanelResultListener] protocol. 19 | type WebOpenPanelResultListenerObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/webkit/web_plug_in_view_factory_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/webpluginviewfactory?language=objc 12 | type PWebPlugInViewFactory interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PWebPlugInViewFactory = (*WebPlugInViewFactoryObject)(nil) 17 | 18 | // A concrete type for the [PWebPlugInViewFactory] protocol. 19 | type WebPlugInViewFactoryObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/webkit/web_policy_decision_listener_protocol.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // This protocol enables WebView policy delegates to communicate with listener objects. A listener object conforming to this protocol is passed as one of the arguments to web view policy delegate methods. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/webpolicydecisionlistener?language=objc 12 | type PWebPolicyDecisionListener interface { 13 | } 14 | 15 | // ensure impl type implements protocol interface 16 | var _ PWebPolicyDecisionListener = (*WebPolicyDecisionListenerObject)(nil) 17 | 18 | // A concrete type for the [PWebPolicyDecisionListener] protocol. 19 | type WebPolicyDecisionListenerObject struct { 20 | objc.Object 21 | } 22 | -------------------------------------------------------------------------------- /macos/webkit/web_policy_delegate.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/webpolicydelegate?language=objc 12 | type PWebPolicyDelegate interface { 13 | } 14 | 15 | // A delegate implementation builder for the [PWebPolicyDelegate] protocol. 16 | type WebPolicyDelegate struct { 17 | } 18 | 19 | // ensure impl type implements protocol interface 20 | var _ PWebPolicyDelegate = (*WebPolicyDelegateObject)(nil) 21 | 22 | // A concrete type for the [PWebPolicyDelegate] protocol. 23 | type WebPolicyDelegateObject struct { 24 | objc.Object 25 | } 26 | -------------------------------------------------------------------------------- /macos/webkit/web_resource_load_delegate.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // Web view resource load delegates implement this protocol to be notified on the progress of loading individual resources. Note that there can be hundreds of resources, such as images and other media, per page. So, if you just want to get page loading status see the WebFrameLoadDelegate protocol. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/webresourceloaddelegate?language=objc 12 | type PWebResourceLoadDelegate interface { 13 | } 14 | 15 | // A delegate implementation builder for the [PWebResourceLoadDelegate] protocol. 16 | type WebResourceLoadDelegate struct { 17 | } 18 | 19 | // ensure impl type implements protocol interface 20 | var _ PWebResourceLoadDelegate = (*WebResourceLoadDelegateObject)(nil) 21 | 22 | // A concrete type for the [PWebResourceLoadDelegate] protocol. 23 | type WebResourceLoadDelegateObject struct { 24 | objc.Object 25 | } 26 | -------------------------------------------------------------------------------- /macos/webkit/web_ui_delegate.gen.go: -------------------------------------------------------------------------------- 1 | // Code generated by DarwinKit. DO NOT EDIT. 2 | 3 | package webkit 4 | 5 | import ( 6 | "github.com/progrium/darwinkit/objc" 7 | ) 8 | 9 | // Web view user interface delegates implement this protocol to control the opening of new windows, augment the behavior of default menu items displayed when the user clicks elements, and perform other user interface–related tasks. These methods can be invoked as a result of handling JavaScript or other plug-in content. Delegates that display more than one web view per window, for example, need to implement some of these methods to handle that case. The default implementation assumes one window per web view, so non-conventional user interfaces might implement a user interface delegate. [Full Topic] 10 | // 11 | // [Full Topic]: https://developer.apple.com/documentation/webkit/webuidelegate?language=objc 12 | type PWebUIDelegate interface { 13 | } 14 | 15 | // A delegate implementation builder for the [PWebUIDelegate] protocol. 16 | type WebUIDelegate struct { 17 | } 18 | 19 | // ensure impl type implements protocol interface 20 | var _ PWebUIDelegate = (*WebUIDelegateObject)(nil) 21 | 22 | // A concrete type for the [PWebUIDelegate] protocol. 23 | type WebUIDelegateObject struct { 24 | objc.Object 25 | } 26 | -------------------------------------------------------------------------------- /macos/webkit/webkit.go: -------------------------------------------------------------------------------- 1 | //go:generate go run ../../generate/tools/genmod.go 2 | package webkit 3 | 4 | // #cgo CFLAGS: -x objective-c 5 | // #cgo LDFLAGS: -framework WebKit 6 | // void importWebKitProtocols(); 7 | import "C" 8 | 9 | func init() { 10 | C.importWebKitProtocols() 11 | } 12 | -------------------------------------------------------------------------------- /macos/webkit/webkit_test.go: -------------------------------------------------------------------------------- 1 | package webkit 2 | 3 | import "testing" 4 | 5 | func TestWebkitValid(t *testing.T) { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /objc/base_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package objc 6 | 7 | import ( 8 | "testing" 9 | "unsafe" 10 | ) 11 | 12 | func TestSetAssociatedObject(t *testing.T) { 13 | o1 := NewObject() 14 | o2 := NewObject() 15 | var i = 0 16 | key := unsafe.Pointer(&i) 17 | SetAssociatedObject(o1, key, o2, ASSOCIATION_RETAIN) 18 | if o2.RetainCount() != 2 { 19 | t.Fail() 20 | } 21 | o1.Release() 22 | if o2.RetainCount() != 1 { 23 | t.Fail() 24 | } 25 | o2.Release() 26 | 27 | o1 = NewObject() 28 | o2 = NewObject() 29 | o3 := NewObject() 30 | SetAssociatedObject(o1, key, o2, ASSOCIATION_RETAIN) 31 | if o2.RetainCount() != 2 { 32 | t.Fail() 33 | } 34 | SetAssociatedObject(o1, key, o3, ASSOCIATION_RETAIN) 35 | if o2.RetainCount() != 1 { 36 | t.Fail() 37 | } 38 | o1.Release() 39 | if o2.RetainCount() != 1 || o3.RetainCount() != 1 { 40 | t.Fail() 41 | } 42 | o2.Release() 43 | o3.Release() 44 | } 45 | -------------------------------------------------------------------------------- /objc/block_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package objc 6 | 7 | import ( 8 | "reflect" 9 | "testing" 10 | 11 | "github.com/progrium/darwinkit/internal/assert" 12 | ) 13 | 14 | func Test_getBlockTypeEncoding(t *testing.T) { 15 | var f = func(index uint, value Object) { 16 | 17 | } 18 | encoding := getBlockTypeEncoding(reflect.TypeOf(f)) 19 | if encoding != "v@?Q@" { 20 | t.Fail() 21 | } 22 | } 23 | 24 | func Test_CallBlock(t *testing.T) { 25 | b := testBlock() 26 | v := CallBlock[int32](b, 10) 27 | assert.Equal(t, int32(5), v) 28 | } 29 | 30 | func Test_CreateGlobalBlock(t *testing.T) { 31 | b := CreateGlobalBlock(func(v int) int { 32 | return v / 2 33 | }) 34 | v := CallBlock[int](b, 10) 35 | assert.Equal(t, 5, v) 36 | 37 | b2 := b.Copy() 38 | assert.Equal(t, b2, b) 39 | b.Release() 40 | b.Release() 41 | b.Release() 42 | v = CallBlock[int](b, 10) 43 | assert.Equal(t, 5, v) 44 | } 45 | 46 | func Test_CreateMallocBlock(t *testing.T) { 47 | b := CreateMallocBlock(func(v int) int { 48 | return v / 2 49 | }) 50 | v := CallBlock[int](b, 10) 51 | assert.Equal(t, 5, v) 52 | 53 | b.Release() 54 | assert.Panics(t, func() { 55 | v = CallBlock[int](b, 10) 56 | }) 57 | } 58 | -------------------------------------------------------------------------------- /objc/doc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // Gain low-level access to the Objective-C runtime and the Objective-C root types. 6 | // 7 | // If it's not documented it's not meant to be used directly, but you can find the 8 | // equivalent type or function in the Apple documentation. 9 | // 10 | // [Apple Documentation] 11 | // 12 | // [Apple Documentation]: https://developer.apple.com/documentation/objectivec?language=objc 13 | package objc 14 | -------------------------------------------------------------------------------- /objc/ffi/ffi.m: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | #import 6 | #import 7 | #include "_cgo_export.h" 8 | 9 | 10 | ffi_status ffi_prep_cif0(uintptr_t cif, ffi_abi abi, unsigned int nargs, uintptr_t rtype, uintptr_t atypes) { 11 | return ffi_prep_cif((ffi_cif *)cif, abi, nargs, (ffi_type *)rtype, (ffi_type **)atypes); 12 | } 13 | void ffi_call0(uintptr_t cif, void* fn, uintptr_t rvalue, uintptr_t avalue) { 14 | return ffi_call((ffi_cif *)cif, fn, (void *)rvalue, (void **)avalue); 15 | } 16 | void *ffi_closure_alloc0(uintptr_t code) { 17 | return ffi_closure_alloc(sizeof(ffi_closure), (void **)code); 18 | } 19 | ffi_status ffi_prep_closure_loc0(void* closure, uintptr_t cif, void* fn, uintptr_t user_data, void *codeloc) { 20 | return ffi_prep_closure_loc((ffi_closure *)closure, (ffi_cif *)cif, fn, (void *)user_data, codeloc); 21 | } 22 | 23 | void forward_to_go(ffi_cif *cif, void *ret, void* args[], void * user_data) { 24 | handleClosure(cif, ret, args, user_data); 25 | } -------------------------------------------------------------------------------- /objc/ffi/ffi_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package ffi 6 | 7 | import ( 8 | "runtime" 9 | "testing" 10 | "time" 11 | "unsafe" 12 | 13 | "github.com/progrium/darwinkit/internal/assert" 14 | ) 15 | 16 | func Test_closure(t *testing.T) { 17 | cif, status := PrepCIF(TypeSint64, []*Type{TypeSint64, TypeSint64}) 18 | assert.Equal(t, OK, status) 19 | fn, handle, status := CreateClosure(cif, func(cif *CIF, ret unsafe.Pointer, args []unsafe.Pointer) { 20 | rp := (*int)(ret) 21 | *rp = 10 22 | }) 23 | assert.Equal(t, OK, status) 24 | 25 | var ret int 26 | var arg1 int 27 | var arg2 int 28 | Call(cif, fn, unsafe.Pointer(&ret), []unsafe.Pointer{unsafe.Pointer(&arg1), unsafe.Pointer(&arg2)}) 29 | assert.Equal(t, 10, ret) 30 | 31 | handle.Delete() 32 | runtime.GC() 33 | time.Sleep(time.Millisecond * 10) 34 | runtime.GC() 35 | } 36 | -------------------------------------------------------------------------------- /objc/misc.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package objc 6 | 7 | import "C" 8 | import ( 9 | "unsafe" 10 | ) 11 | 12 | func ForceCast[S any, T any](v S) T { 13 | var zeroS S 14 | var zeroT T 15 | if unsafe.Sizeof(zeroS) != unsafe.Sizeof(zeroT) { 16 | panic("types should have same size") 17 | } 18 | return *(*T)(unsafe.Pointer(&v)) 19 | } 20 | 21 | var associationKeyCache = SyncCache[string, unsafe.Pointer]{} 22 | 23 | // AssociationKey return key for AssociatedObject 24 | func AssociationKey(name string) unsafe.Pointer { 25 | return associationKeyCache.Load(name, func(name string) unsafe.Pointer { 26 | associationKey := unsafe.Pointer(C.CString(name)) 27 | return associationKey 28 | }) 29 | } 30 | -------------------------------------------------------------------------------- /objc/objc_cgo.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package objc 6 | 7 | // #cgo CFLAGS: -x objective-c -Wno-unguarded-availability-new 8 | // #cgo LDFLAGS: -framework Foundation -framework CoreFoundation 9 | import "C" 10 | -------------------------------------------------------------------------------- /objc/object_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package objc 6 | 7 | import ( 8 | "testing" 9 | ) 10 | 11 | func TestNSObject_GetClass(t *testing.T) { 12 | o := NewObject() 13 | if o.Class().Name() != "NSObject" { 14 | t.Fail() 15 | } 16 | } 17 | 18 | func TestNSObject_RetainCount(t *testing.T) { 19 | o := NewObject() 20 | if o.RetainCount() != 1 { 21 | t.Fail() 22 | } 23 | 24 | o.Retain() 25 | if o.RetainCount() != 2 { 26 | t.Fail() 27 | } 28 | 29 | o.Release() 30 | o.Release() 31 | } 32 | -------------------------------------------------------------------------------- /objc/runtime_utils.m: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | #import 6 | #import 7 | #import 8 | #include "_cgo_export.h" 9 | 10 | 11 | @interface DeallocListener : NSObject 12 | @property (assign) uintptr_t goID; 13 | @end 14 | 15 | @implementation DeallocListener 16 | 17 | - (void)dealloc { 18 | runTaskAndDeleteHandle([self goID]); 19 | [super dealloc]; 20 | } 21 | @end 22 | 23 | void* C_NewDeallocListener(uintptr_t id) { 24 | DeallocListener* listener = [[DeallocListener alloc] init]; 25 | [listener setGoID:id]; 26 | return listener; 27 | } 28 | 29 | void Run_WithAutoreleasePool(uintptr_t ptr) { 30 | @autoreleasepool { 31 | runTaskAndDeleteHandle(ptr); 32 | } 33 | } -------------------------------------------------------------------------------- /objc/runtime_utils_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package objc 6 | 7 | import ( 8 | "testing" 9 | ) 10 | 11 | func TestSetDeallocListener(t *testing.T) { 12 | var notified = false 13 | o := NewObject() 14 | SetDeallocListener(o, func() { 15 | notified = true 16 | }) 17 | o.Release() 18 | if !notified { 19 | t.Fail() 20 | } 21 | } 22 | 23 | func TestWithAutoreleasePool(t *testing.T) { 24 | 25 | var o = NewObject() 26 | WithAutoreleasePool(func() { 27 | o.Autorelease() 28 | if o.RetainCount() != 1 { 29 | t.Failed() 30 | } 31 | }) 32 | } 33 | -------------------------------------------------------------------------------- /objc/sync_cache.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package objc 6 | 7 | import "sync" 8 | 9 | type SyncCache[K comparable, V any] struct { 10 | m sync.Map 11 | computeLock sync.Mutex 12 | } 13 | 14 | func (c *SyncCache[K, V]) Load(key K, Compute func(key K) V) V { 15 | v, ok := c.m.Load(key) 16 | if ok { 17 | return v.(V) 18 | } 19 | c.computeLock.Lock() 20 | defer c.computeLock.Unlock() 21 | v, ok = c.m.Load(key) 22 | if ok { 23 | return v.(V) 24 | } 25 | 26 | v = Compute(key) 27 | c.m.Store(key, v) 28 | return v.(V) 29 | } 30 | -------------------------------------------------------------------------------- /objc/type_convertion.h: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | #import 6 | #import 7 | #import 8 | 9 | typedef struct { 10 | unsigned long len; 11 | const void* data; 12 | } data; 13 | 14 | typedef struct { 15 | unsigned long len; 16 | const void* data; 17 | } array; 18 | 19 | typedef struct { 20 | unsigned long len; 21 | const void* key_data; 22 | const void* value_data; 23 | } dict; -------------------------------------------------------------------------------- /objc/type_def.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package objc 6 | 7 | import "reflect" 8 | 9 | type UInteger = uint64 10 | type Integer = int64 11 | type Void struct{} 12 | 13 | var voidType = reflect.TypeOf((*Void)(nil)).Elem() 14 | -------------------------------------------------------------------------------- /objc/type_encodings_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2021 Liu Dong. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package objc 6 | 7 | import ( 8 | "reflect" 9 | "testing" 10 | 11 | "github.com/progrium/darwinkit/internal/assert" 12 | ) 13 | 14 | type myInnerStruct struct { 15 | a int 16 | x uint8 17 | b float32 18 | } 19 | 20 | type myStruct struct { 21 | ms myInnerStruct 22 | f float64 23 | remains [8]uint16 24 | } 25 | 26 | func Test_getTypeEncoding(t *testing.T) { 27 | tp := reflect.TypeOf(myStruct{}) 28 | assert.Equal(t, "{?={?=qCf}d[8S]}", getTypeEncoding(tp)) 29 | } 30 | --------------------------------------------------------------------------------