Toolkit duty matrix
Which backend implements which Toolkit duty (crates/day-spec/src/lib.rs). ✓ = the
backend defines the method; · = it inherits the day-spec default (a no-op or trivial
answer — day-spec documents each). Required duties have no default; every backend must
implement them, and this table proves it.
| duty | req | appkit | uikit | gtk | qt | xaml | android | arkui | dom | mock |
|---|---|---|---|---|---|---|---|---|---|---|
capability | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
realize | yes | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
update | yes | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
release | yes | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
release_piece | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · |
insert | yes | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
remove | yes | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
move_child | yes | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
measure | yes | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
first_baseline | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
set_frame | yes | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
set_opacity | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | ✓ | ✓ |
set_transform | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | ✓ | ✓ |
set_selectable | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
set_cursor | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | ✓ | ✓ |
set_scroll_content | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
scroll_to | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
scroll_offset | · | · | · | · | · | ✓ | · | · | ✓ | ✓ |
set_event_sink | yes | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
enable_gesture | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
focus | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
set_focusable | · | ✓ | · | · | · | · | · | · | · | · |
attach_list | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
attach_tree | · | ✓ | ✓ | ✓ | · | · | · | · | · | ✓ |
set_route | · | · | · | · | · | · | · | · | ✓ | · |
set_undo_state | · | ✓ | ✓ | · | · | · | · | · | · | · |
set_edit_state | · | ✓ | ✓ | · | · | · | · | · | · | · |
modifiers | · | ✓ | · | · | ✓ | · | · | · | ✓ | · |
set_drag_source | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · |
set_drop_target | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · |
set_context_menu_fn | · | ✓ | ✓ | ✓ | ✓ | · | · | · | ✓ | · |
set_app_menu | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | ✓ | ✓ |
set_context_menu | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | ✓ | ✓ |
set_toolbar | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | ✓ | · |
update_toolbar | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | ✓ | · |
supports_lifecycle | · | · | ✓ | · | · | · | ✓ | · | ✓ | ✓ |
set_a11y | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
read_a11y | · | ✓ | ✓ | · | · | · | · | · | · | ✓ |
replay | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
font_families | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
measure_text | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
decode_image | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
image_info | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
image_properties | · | ✓ | · | · | · | · | · | · | · | · |
encode_image | · | ✓ | ✓ | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ |
encode_formats | · | ✓ | ✓ | ✓ | ✓ | · | ✓ | ✓ | ✓ | ✓ |
release_image | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
snapshot_window | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | ✓ |
snapshot_window_chrome | · | ✓ | ✓ | ✓ | · | · | ✓ | · | · | · |
toggle_sidebar | · | ✓ | · | ✓ | ✓ | ✓ | · | · | ✓ | · |
native_back | · | · | ✓ | · | · | · | ✓ | · | · | · |
ui_idle | · | · | ✓ | ✓ | · | · | ✓ | ✓ | ✓ | ✓ |
present | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
dismiss | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | ✓ | ✓ |
open_url | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
defer_system_gestures | · | · | ✓ | · | · | · | ✓ | · | · | ✓ |
dark_mode | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · |
set_appearance | · | ✓ | ✓ | ✓ | · | ✓ | ✓ | · | ✓ | · |
set_app_badge | · | ✓ | ✓ | · | · | · | · | · | ✓ | · |
on_suspend | · | · | · | · | · | · | · | · | · | ✓ |
on_resume | · | · | · | · | · | · | · | · | · | ✓ |
on_memory_warning | · | · | · | · | · | · | · | · | · | ✓ |
adopt | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
open_window | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | ✓ |
close_window | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | ✓ |
quit_app | · | · | · | · | · | ✓ | · | · | · | ✓ |
focus_window | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | · | ✓ |
set_window_title | · | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | · | · | ✓ |
fit_window | · | ✓ | · | · | · | · | · | · | · | ✓ |
snapshot_window_of | · | ✓ | ✓ | ✓ | ✓ | ✓ | · | · | · | ✓ |