Sign in

    moon_accesskit

    MoonBit port of Rust accesskit (common + consumer).

    accessibility
    a11y
    accesskit
    Download zip
    Author
    Version
    0.2.2
    License
    Apache-2.0
    Last updated
    6 months ago
    Downloads
    21K

    No dependencies

    #MoonBit AccessKit (common)

    This repository is a MoonBit port of the Rust accesskit crates:

    • Milky2018/moon_accesskit (common): data model + JSON codec
    • Milky2018/moon_accesskit/consumer (consumer): in-memory tree state, update application, and iterators

    Upstream pin (for compatibility work):
    • Rust crate: accesskit 0.24.0
    • Git commit: 528fba56534d06551d8ce8c28cb444bd18ed1cfc (2026-02-02)

    #Usage

    ///|
    test "build and JSON-encode a TreeUpdate" {
    let tree_id = TreeId::root()
    let root = NodeId::new(1UL)
    let node = Node::new(Role::Button)
    node.set_label("OK")
    let update = TreeUpdate::new(tree_id, root)
    update.set_tree(Tree::new(root))
    update.push_node(root, node)
    let json = update.to_json().stringify(indent=2)
    let roundtrip : TreeUpdate = @json.from_json(@json.parse(json))
    assert_eq(roundtrip.focus().to_u64(), 1UL)
    }

    #Consumer package

    The Milky2018/moon_accesskit/consumer package provides:

    • Tree / State: apply TreeUpdates and query nodes
    • common_filter: a reference-compatible filter used by iterators
    • ChangeHandler: receive change callbacks when applying updates

    See the runnable example in cmd/consumer_demo.

    #JSON compatibility

    This port implements ToJson / @json.FromJson for TreeUpdate, ActionRequest, Node, geometry types, and related enums/structs.

    The JSON shape is designed to mirror Rust serde JSON (notably camelCase field names for structs and enum variant names).

    ActionHandler

    pub(open) trait ActionHandler {
    do_action(Self, ActionRequest) -> Unit
    }

    ActivationHandler

    pub(open) trait ActivationHandler {
    request_initial_tree(Self) -> TreeUpdate?
    }

    DeactivationHandler

    pub(open) trait DeactivationHandler {
    deactivate_accessibility(Self) -> Unit
    }

    Action

    pub(all) enum Action {
    Click
    Focus
    Blur
    Collapse
    Expand
    CustomAction
    Decrement
    Increment
    HideTooltip
    ShowTooltip
    ReplaceSelectedText
    ScrollDown
    ScrollLeft
    ScrollRight
    ScrollUp
    ScrollIntoView
    ScrollToPoint
    SetScrollOffset
    SetTextSelection
    SetSequentialFocusNavigationStartingPoint
    SetValue
    ShowContextMenu
    } derive(Eq,
    Debug
    )

    impl Show for Action
    impl ToJson for Action

    Action::index

    fn Action::index(self : Action) -> Int

    Action::mask

    fn Action::mask(self : Action) -> UInt

    Action::n

    fn Action::n(value : Int) -> Action?

    ActionData

    pub(all) enum ActionData {
    CustomAction(Int)
    Value(String)
    NumericValue(Double)
    ScrollUnit(ScrollUnit)
    ScrollHint(ScrollHint)
    ScrollToPoint(Point)
    SetScrollOffset(Point)
    SetTextSelection(TextSelection)
    } derive(Eq,
    Debug
    )

    ActionRequest

    pub(all) struct ActionRequest {
    // private fields

    fn new(action : Action, target_tree : TreeId, target_node : NodeId) -> ActionRequest
    }

    ActionRequest::action

    fn ActionRequest::action(self : ActionRequest) -> Action

    ActionRequest::data

    ActionRequest::new

    fn ActionRequest::new(action : Action, target_tree : TreeId, target_node : NodeId) -> ActionRequest

    ActionRequest::set_data

    fn ActionRequest::set_data(self : ActionRequest, data : ActionData) -> Unit

    ActionRequest::target_node

    fn ActionRequest::target_node(self : ActionRequest) -> NodeId

    ActionRequest::target_tree

    fn ActionRequest::target_tree(self : ActionRequest) -> TreeId

    Affine

    pub(all) struct Affine {
    a : Double
    b : Double
    c : Double
    d : Double
    e : Double
    f : Double

    fn new(a : Double, b : Double, c : Double, d : Double, e : Double, f : Double) -> Affine
    } derive(Eq,
    Debug
    )

    impl Show for Affine
    impl ToJson for Affine

    Affine::as_coeffs

    fn Affine::as_coeffs(self : Affine) -> Array[Double]

    Affine::determinant

    fn Affine::determinant(self : Affine) -> Double

    Affine::flip_x

    fn Affine::flip_x() -> Affine

    Affine::flip_y

    fn Affine::flip_y() -> Affine

    Affine::identity

    fn Affine::identity() -> Affine

    Affine::inverse

    fn Affine::inverse(self : Affine) -> Affine

    Affine::is_finite

    fn Affine::is_finite(self : Affine) -> Bool

    Affine::is_nan

    fn Affine::is_nan(self : Affine) -> Bool

    Affine::map_unit_square

    fn Affine::map_unit_square(rect : Rect) -> Affine

    Affine::mul

    fn Affine::mul(self : Affine, other : Affine) -> Affine

    Affine::new

    fn Affine::new(a : Double, b : Double, c : Double, d : Double, e : Double, f : Double) -> Affine

    Affine::scale

    fn Affine::scale(s : Double) -> Affine

    Affine::scale_non_uniform

    fn Affine::scale_non_uniform(sx : Double, sy : Double) -> Affine

    Affine::transform_point

    fn Affine::transform_point(self : Affine, other : Point) -> Point

    Affine::transform_rect_bbox

    fn Affine::transform_rect_bbox(self : Affine, rect : Rect) -> Rect

    Affine::translate

    fn Affine::translate(v : Vec2) -> Affine

    AriaCurrent

    pub(all) enum AriaCurrent {
    False
    True
    Page
    Step
    Location
    Date
    Time
    } derive(Eq,
    Debug
    )

    AutoComplete

    pub(all) enum AutoComplete {
    Inline
    List
    Both
    } derive(Eq,
    Debug
    )

    Color

    pub(all) struct Color {
    red : Byte
    green : Byte
    blue : Byte
    alpha : Byte

    fn new(red : Byte, green : Byte, blue : Byte, alpha : Byte) -> Color
    } derive(Eq,
    Debug
    )

    impl Show for Color
    impl ToJson for Color

    Color::new

    fn Color::new(red : Byte, green : Byte, blue : Byte, alpha : Byte) -> Color

    CustomAction

    pub(all) struct CustomAction {
    id : Int
    description : String

    fn new(id : Int, description : String) -> CustomAction
    } derive(Eq,
    Debug
    )

    CustomAction::debug

    fn CustomAction::debug(self : CustomAction) -> String

    CustomAction::new

    fn CustomAction::new(id : Int, description : String) -> CustomAction

    HasPopup

    pub(all) enum HasPopup {
    Menu
    Listbox
    Tree
    Grid
    Dialog
    } derive(Eq,
    Debug
    )

    impl Show for HasPopup
    impl ToJson for HasPopup

    Invalid

    pub(all) enum Invalid {
    True
    Grammar
    Spelling
    } derive(Eq,
    Debug
    )

    impl Show for Invalid
    impl ToJson for Invalid

    ListStyle

    pub(all) enum ListStyle {
    Circle
    Disc
    Image
    Numeric
    Square
    Other
    } derive(Eq,
    Debug
    )

    impl Show for ListStyle
    impl ToJson for ListStyle

    Live

    pub(all) enum Live {
    Off
    Polite
    Assertive
    } derive(Eq,
    Debug
    )

    impl Show for Live
    impl ToJson for Live

    Node

    pub(all) struct Node {
    // private fields

    fn new(role : Role) -> Node
    }

    impl ToJson for Node

    Node::access_key

    fn Node::access_key(self : Node) -> String?

    Node::actions_mask

    fn Node::actions_mask(self : Node) -> UInt

    Node::active_descendant

    fn Node::active_descendant(self : Node) -> NodeId?

    Node::add_action

    fn Node::add_action(self : Node, action : Action) -> Unit

    Node::add_child_action

    fn Node::add_child_action(self : Node, action : Action) -> Unit

    Node::aria_current

    fn Node::aria_current(self : Node) -> AriaCurrent?

    Node::author_id

    fn Node::author_id(self : Node) -> String?

    Node::auto_complete

    fn Node::auto_complete(self : Node) -> AutoComplete?

    Node::background_color

    fn Node::background_color(self : Node) -> Color?

    Node::bounds

    fn Node::bounds(self : Node) -> Rect?

    Node::braille_label

    fn Node::braille_label(self : Node) -> String?

    Node::braille_role_description

    fn Node::braille_role_description(self : Node) -> String?

    Node::character_lengths

    fn Node::character_lengths(self : Node) -> Array[Int]

    Node::character_positions

    fn Node::character_positions(self : Node) -> Array[Float]?

    Node::character_widths

    fn Node::character_widths(self : Node) -> Array[Float]?

    Node::child_actions_mask

    fn Node::child_actions_mask(self : Node) -> UInt

    Node::child_supports_action

    fn Node::child_supports_action(self : Node, action : Action) -> Bool

    Node::children

    fn Node::children(self : Node) -> Array[NodeId]

    Node::class_name

    fn Node::class_name(self : Node) -> String?

    Node::clear_access_key

    fn Node::clear_access_key(self : Node) -> Unit

    Node::clear_actions

    fn Node::clear_actions(self : Node) -> Unit

    Node::clear_active_descendant

    fn Node::clear_active_descendant(self : Node) -> Unit

    Node::clear_aria_current

    fn Node::clear_aria_current(self : Node) -> Unit

    Node::clear_author_id

    fn Node::clear_author_id(self : Node) -> Unit

    Node::clear_auto_complete

    fn Node::clear_auto_complete(self : Node) -> Unit

    Node::clear_background_color

    fn Node::clear_background_color(self : Node) -> Unit

    Node::clear_bounds

    fn Node::clear_bounds(self : Node) -> Unit

    Node::clear_braille_label

    fn Node::clear_braille_label(self : Node) -> Unit

    Node::clear_braille_role_description

    fn Node::clear_braille_role_description(self : Node) -> Unit

    Node::clear_busy

    fn Node::clear_busy(self : Node) -> Unit

    Node::clear_character_lengths

    fn Node::clear_character_lengths(self : Node) -> Unit

    Node::clear_character_positions

    fn Node::clear_character_positions(self : Node) -> Unit

    Node::clear_character_widths

    fn Node::clear_character_widths(self : Node) -> Unit

    Node::clear_child_actions

    fn Node::clear_child_actions(self : Node) -> Unit

    Node::clear_children

    fn Node::clear_children(self : Node) -> Unit

    Node::clear_class_name

    fn Node::clear_class_name(self : Node) -> Unit

    Node::clear_clips_children

    fn Node::clear_clips_children(self : Node) -> Unit

    Node::clear_color_value

    fn Node::clear_color_value(self : Node) -> Unit

    Node::clear_column_count

    fn Node::clear_column_count(self : Node) -> Unit

    Node::clear_column_index

    fn Node::clear_column_index(self : Node) -> Unit

    Node::clear_column_index_text

    fn Node::clear_column_index_text(self : Node) -> Unit

    Node::clear_column_span

    fn Node::clear_column_span(self : Node) -> Unit

    Node::clear_controls

    fn Node::clear_controls(self : Node) -> Unit

    Node::clear_custom_actions

    fn Node::clear_custom_actions(self : Node) -> Unit

    Node::clear_described_by

    fn Node::clear_described_by(self : Node) -> Unit

    Node::clear_description

    fn Node::clear_description(self : Node) -> Unit

    Node::clear_details

    fn Node::clear_details(self : Node) -> Unit

    Node::clear_disabled

    fn Node::clear_disabled(self : Node) -> Unit

    Node::clear_error_message

    fn Node::clear_error_message(self : Node) -> Unit

    Node::clear_expanded

    fn Node::clear_expanded(self : Node) -> Unit

    Node::clear_flow_to

    fn Node::clear_flow_to(self : Node) -> Unit

    Node::clear_font_family

    fn Node::clear_font_family(self : Node) -> Unit

    Node::clear_font_size

    fn Node::clear_font_size(self : Node) -> Unit

    Node::clear_font_weight

    fn Node::clear_font_weight(self : Node) -> Unit

    Node::clear_foreground_color

    fn Node::clear_foreground_color(self : Node) -> Unit

    Node::clear_has_popup

    fn Node::clear_has_popup(self : Node) -> Unit

    Node::clear_hidden

    fn Node::clear_hidden(self : Node) -> Unit

    Node::clear_html_tag

    fn Node::clear_html_tag(self : Node) -> Unit

    fn Node::clear_in_page_link_target(self : Node) -> Unit

    Node::clear_inner_html

    fn Node::clear_inner_html(self : Node) -> Unit

    Node::clear_invalid

    fn Node::clear_invalid(self : Node) -> Unit

    Node::clear_is_grammar_error

    fn Node::clear_is_grammar_error(self : Node) -> Unit

    Node::clear_is_line_breaking_object

    fn Node::clear_is_line_breaking_object(self : Node) -> Unit

    Node::clear_is_page_breaking_object

    fn Node::clear_is_page_breaking_object(self : Node) -> Unit

    Node::clear_is_search_match

    fn Node::clear_is_search_match(self : Node) -> Unit

    Node::clear_is_spelling_error

    fn Node::clear_is_spelling_error(self : Node) -> Unit

    Node::clear_is_suggestion

    fn Node::clear_is_suggestion(self : Node) -> Unit

    Node::clear_italic

    fn Node::clear_italic(self : Node) -> Unit

    Node::clear_keyboard_shortcut

    fn Node::clear_keyboard_shortcut(self : Node) -> Unit

    Node::clear_label

    fn Node::clear_label(self : Node) -> Unit

    Node::clear_labelled_by

    fn Node::clear_labelled_by(self : Node) -> Unit

    Node::clear_language

    fn Node::clear_language(self : Node) -> Unit

    Node::clear_level

    fn Node::clear_level(self : Node) -> Unit

    Node::clear_list_style

    fn Node::clear_list_style(self : Node) -> Unit

    Node::clear_live

    fn Node::clear_live(self : Node) -> Unit

    Node::clear_live_atomic

    fn Node::clear_live_atomic(self : Node) -> Unit

    Node::clear_max_numeric_value

    fn Node::clear_max_numeric_value(self : Node) -> Unit

    Node::clear_member_of

    fn Node::clear_member_of(self : Node) -> Unit

    Node::clear_min_numeric_value

    fn Node::clear_min_numeric_value(self : Node) -> Unit

    Node::clear_modal

    fn Node::clear_modal(self : Node) -> Unit

    Node::clear_multiselectable

    fn Node::clear_multiselectable(self : Node) -> Unit

    Node::clear_next_on_line

    fn Node::clear_next_on_line(self : Node) -> Unit

    Node::clear_numeric_value

    fn Node::clear_numeric_value(self : Node) -> Unit

    Node::clear_numeric_value_jump

    fn Node::clear_numeric_value_jump(self : Node) -> Unit

    Node::clear_numeric_value_step

    fn Node::clear_numeric_value_step(self : Node) -> Unit

    Node::clear_orientation

    fn Node::clear_orientation(self : Node) -> Unit

    Node::clear_overline

    fn Node::clear_overline(self : Node) -> Unit

    Node::clear_owns

    fn Node::clear_owns(self : Node) -> Unit

    Node::clear_placeholder

    fn Node::clear_placeholder(self : Node) -> Unit

    Node::clear_popup_for

    fn Node::clear_popup_for(self : Node) -> Unit

    Node::clear_position_in_set

    fn Node::clear_position_in_set(self : Node) -> Unit

    Node::clear_previous_on_line

    fn Node::clear_previous_on_line(self : Node) -> Unit

    Node::clear_radio_group

    fn Node::clear_radio_group(self : Node) -> Unit

    Node::clear_read_only

    fn Node::clear_read_only(self : Node) -> Unit

    Node::clear_required

    fn Node::clear_required(self : Node) -> Unit

    Node::clear_role_description

    fn Node::clear_role_description(self : Node) -> Unit

    Node::clear_row_count

    fn Node::clear_row_count(self : Node) -> Unit

    Node::clear_row_index

    fn Node::clear_row_index(self : Node) -> Unit

    Node::clear_row_index_text

    fn Node::clear_row_index_text(self : Node) -> Unit

    Node::clear_row_span

    fn Node::clear_row_span(self : Node) -> Unit

    Node::clear_scroll_x

    fn Node::clear_scroll_x(self : Node) -> Unit

    Node::clear_scroll_x_max

    fn Node::clear_scroll_x_max(self : Node) -> Unit

    Node::clear_scroll_x_min

    fn Node::clear_scroll_x_min(self : Node) -> Unit

    Node::clear_scroll_y

    fn Node::clear_scroll_y(self : Node) -> Unit

    Node::clear_scroll_y_max

    fn Node::clear_scroll_y_max(self : Node) -> Unit

    Node::clear_scroll_y_min

    fn Node::clear_scroll_y_min(self : Node) -> Unit

    Node::clear_selected

    fn Node::clear_selected(self : Node) -> Unit

    Node::clear_size_of_set

    fn Node::clear_size_of_set(self : Node) -> Unit

    Node::clear_sort_direction

    fn Node::clear_sort_direction(self : Node) -> Unit

    Node::clear_state_description

    fn Node::clear_state_description(self : Node) -> Unit

    Node::clear_strikethrough

    fn Node::clear_strikethrough(self : Node) -> Unit

    Node::clear_text_align

    fn Node::clear_text_align(self : Node) -> Unit

    Node::clear_text_direction

    fn Node::clear_text_direction(self : Node) -> Unit

    Node::clear_text_selection

    fn Node::clear_text_selection(self : Node) -> Unit

    Node::clear_toggled

    fn Node::clear_toggled(self : Node) -> Unit

    Node::clear_tooltip

    fn Node::clear_tooltip(self : Node) -> Unit

    Node::clear_touch_transparent

    fn Node::clear_touch_transparent(self : Node) -> Unit

    Node::clear_transform

    fn Node::clear_transform(self : Node) -> Unit

    Node::clear_tree_id

    fn Node::clear_tree_id(self : Node) -> Unit

    Node::clear_underline

    fn Node::clear_underline(self : Node) -> Unit

    Node::clear_url

    fn Node::clear_url(self : Node) -> Unit

    Node::clear_value

    fn Node::clear_value(self : Node) -> Unit

    Node::clear_vertical_offset

    fn Node::clear_vertical_offset(self : Node) -> Unit

    Node::clear_visited

    fn Node::clear_visited(self : Node) -> Unit

    Node::clear_word_starts

    fn Node::clear_word_starts(self : Node) -> Unit

    Node::clips_children

    fn Node::clips_children(self : Node) -> Bool

    Node::color_value

    fn Node::color_value(self : Node) -> Color?

    Node::column_count

    fn Node::column_count(self : Node) -> Int?

    Node::column_index

    fn Node::column_index(self : Node) -> Int?

    Node::column_index_text

    fn Node::column_index_text(self : Node) -> String?

    Node::column_span

    fn Node::column_span(self : Node) -> Int?

    Node::controls

    fn Node::controls(self : Node) -> Array[NodeId]

    Node::custom_actions

    fn Node::custom_actions(self : Node) -> Array[CustomAction]

    Node::debug

    fn Node::debug(self : Node) -> String

    Node::described_by

    fn Node::described_by(self : Node) -> Array[NodeId]

    Node::description

    fn Node::description(self : Node) -> String?

    Node::details

    fn Node::details(self : Node) -> Array[NodeId]

    Node::error_message

    fn Node::error_message(self : Node) -> NodeId?

    Node::flow_to

    fn Node::flow_to(self : Node) -> Array[NodeId]

    Node::font_family

    fn Node::font_family(self : Node) -> String?

    Node::font_size

    fn Node::font_size(self : Node) -> Float?

    Node::font_weight

    fn Node::font_weight(self : Node) -> Float?

    Node::foreground_color

    fn Node::foreground_color(self : Node) -> Color?

    Node::has_popup

    fn Node::has_popup(self : Node) -> HasPopup?

    Node::html_tag

    fn Node::html_tag(self : Node) -> String?

    fn Node::in_page_link_target(self : Node) -> NodeId?

    Node::inner_html

    fn Node::inner_html(self : Node) -> String?

    Node::invalid

    fn Node::invalid(self : Node) -> Invalid?

    Node::is_busy

    fn Node::is_busy(self : Node) -> Bool

    Node::is_disabled

    fn Node::is_disabled(self : Node) -> Bool

    Node::is_expanded

    fn Node::is_expanded(self : Node) -> Bool?

    Node::is_grammar_error

    fn Node::is_grammar_error(self : Node) -> Bool

    Node::is_hidden

    fn Node::is_hidden(self : Node) -> Bool

    Node::is_italic

    fn Node::is_italic(self : Node) -> Bool

    Node::is_line_breaking_object

    fn Node::is_line_breaking_object(self : Node) -> Bool

    Node::is_live_atomic

    fn Node::is_live_atomic(self : Node) -> Bool

    Node::is_modal

    fn Node::is_modal(self : Node) -> Bool

    Node::is_multiselectable

    fn Node::is_multiselectable(self : Node) -> Bool

    Node::is_page_breaking_object

    fn Node::is_page_breaking_object(self : Node) -> Bool

    Node::is_read_only

    fn Node::is_read_only(self : Node) -> Bool

    Node::is_required

    fn Node::is_required(self : Node) -> Bool

    Node::is_search_match

    fn Node::is_search_match(self : Node) -> Bool

    Node::is_selected

    fn Node::is_selected(self : Node) -> Bool?

    Node::is_spelling_error

    fn Node::is_spelling_error(self : Node) -> Bool

    Node::is_suggestion

    fn Node::is_suggestion(self : Node) -> Bool

    Node::is_touch_transparent

    fn Node::is_touch_transparent(self : Node) -> Bool

    Node::is_visited

    fn Node::is_visited(self : Node) -> Bool

    Node::keyboard_shortcut

    fn Node::keyboard_shortcut(self : Node) -> String?

    Node::label

    fn Node::label(self : Node) -> String?

    Node::labelled_by

    fn Node::labelled_by(self : Node) -> Array[NodeId]

    Node::language

    fn Node::language(self : Node) -> String?

    Node::level

    fn Node::level(self : Node) -> Int?

    Node::list_style

    fn Node::list_style(self : Node) -> ListStyle?

    Node::live

    fn Node::live(self : Node) -> Live?

    Node::max_numeric_value

    fn Node::max_numeric_value(self : Node) -> Double?

    Node::member_of

    fn Node::member_of(self : Node) -> NodeId?

    Node::min_numeric_value

    fn Node::min_numeric_value(self : Node) -> Double?

    Node::new

    fn Node::new(role : Role) -> Node

    Node::next_on_line

    fn Node::next_on_line(self : Node) -> NodeId?

    Node::numeric_value

    fn Node::numeric_value(self : Node) -> Double?

    Node::numeric_value_jump

    fn Node::numeric_value_jump(self : Node) -> Double?

    Node::numeric_value_step

    fn Node::numeric_value_step(self : Node) -> Double?

    Node::orientation

    fn Node::orientation(self : Node) -> Orientation?

    Node::overline

    fn Node::overline(self : Node) -> TextDecoration?

    Node::owns

    fn Node::owns(self : Node) -> Array[NodeId]

    Node::placeholder

    fn Node::placeholder(self : Node) -> String?

    Node::popup_for

    fn Node::popup_for(self : Node) -> NodeId?

    Node::position_in_set

    fn Node::position_in_set(self : Node) -> Int?

    Node::previous_on_line

    fn Node::previous_on_line(self : Node) -> NodeId?

    Node::push_child

    fn Node::push_child(self : Node, child : NodeId) -> Unit

    Node::push_controlled

    fn Node::push_controlled(self : Node, node_id : NodeId) -> Unit

    Node::push_custom_action

    fn Node::push_custom_action(self : Node, action : CustomAction) -> Unit

    Node::push_described_by

    fn Node::push_described_by(self : Node, node_id : NodeId) -> Unit

    Node::push_detail

    fn Node::push_detail(self : Node, node_id : NodeId) -> Unit

    Node::push_flow_to

    fn Node::push_flow_to(self : Node, node_id : NodeId) -> Unit

    Node::push_labelled_by

    fn Node::push_labelled_by(self : Node, node_id : NodeId) -> Unit

    Node::push_owned

    fn Node::push_owned(self : Node, node_id : NodeId) -> Unit

    Node::push_to_radio_group

    fn Node::push_to_radio_group(self : Node, node_id : NodeId) -> Unit

    Node::radio_group

    fn Node::radio_group(self : Node) -> Array[NodeId]

    Node::remove_action

    fn Node::remove_action(self : Node, action : Action) -> Unit

    Node::remove_child_action

    fn Node::remove_child_action(self : Node, action : Action) -> Unit

    Node::role

    fn Node::role(self : Node) -> Role

    Node::role_description

    fn Node::role_description(self : Node) -> String?

    Node::row_count

    fn Node::row_count(self : Node) -> Int?

    Node::row_index

    fn Node::row_index(self : Node) -> Int?

    Node::row_index_text

    fn Node::row_index_text(self : Node) -> String?

    Node::row_span

    fn Node::row_span(self : Node) -> Int?

    Node::scroll_x

    fn Node::scroll_x(self : Node) -> Double?

    Node::scroll_x_max

    fn Node::scroll_x_max(self : Node) -> Double?

    Node::scroll_x_min

    fn Node::scroll_x_min(self : Node) -> Double?

    Node::scroll_y

    fn Node::scroll_y(self : Node) -> Double?

    Node::scroll_y_max

    fn Node::scroll_y_max(self : Node) -> Double?

    Node::scroll_y_min

    fn Node::scroll_y_min(self : Node) -> Double?

    Node::set_access_key

    fn Node::set_access_key(self : Node, access_key : String) -> Unit

    Node::set_active_descendant

    fn Node::set_active_descendant(self : Node, id : NodeId) -> Unit

    Node::set_aria_current

    fn Node::set_aria_current(self : Node, value : AriaCurrent) -> Unit

    Node::set_author_id

    fn Node::set_author_id(self : Node, author_id : String) -> Unit

    Node::set_auto_complete

    fn Node::set_auto_complete(self : Node, value : AutoComplete) -> Unit

    Node::set_background_color

    fn Node::set_background_color(self : Node, color : Color) -> Unit

    Node::set_bounds

    fn Node::set_bounds(self : Node, value : Rect) -> Unit

    Node::set_braille_label

    fn Node::set_braille_label(self : Node, braille_label : String) -> Unit

    Node::set_braille_role_description

    fn Node::set_braille_role_description(self : Node, braille_role_description : String) -> Unit

    Node::set_busy

    fn Node::set_busy(self : Node) -> Unit

    Node::set_character_lengths

    fn Node::set_character_lengths(self : Node, value : Array[Int]) -> Unit

    Node::set_character_positions

    fn Node::set_character_positions(self : Node, value : Array[Float]) -> Unit

    Node::set_character_widths

    fn Node::set_character_widths(self : Node, value : Array[Float]) -> Unit

    Node::set_children

    fn Node::set_children(self : Node, children : Array[NodeId]) -> Unit

    Node::set_class_name

    fn Node::set_class_name(self : Node, class_name : String) -> Unit

    Node::set_clips_children

    fn Node::set_clips_children(self : Node) -> Unit

    Node::set_color_value

    fn Node::set_color_value(self : Node, color : Color) -> Unit

    Node::set_column_count

    fn Node::set_column_count(self : Node, value : Int) -> Unit

    Node::set_column_index

    fn Node::set_column_index(self : Node, value : Int) -> Unit

    Node::set_column_index_text

    fn Node::set_column_index_text(self : Node, column_index_text : String) -> Unit

    Node::set_column_span

    fn Node::set_column_span(self : Node, value : Int) -> Unit

    Node::set_controls

    fn Node::set_controls(self : Node, controls : Array[NodeId]) -> Unit

    Node::set_custom_actions

    fn Node::set_custom_actions(self : Node, value : Array[CustomAction]) -> Unit

    Node::set_described_by

    fn Node::set_described_by(self : Node, described_by : Array[NodeId]) -> Unit

    Node::set_description

    fn Node::set_description(self : Node, description : String) -> Unit

    Node::set_details

    fn Node::set_details(self : Node, details : Array[NodeId]) -> Unit

    Node::set_disabled

    fn Node::set_disabled(self : Node) -> Unit

    Node::set_error_message

    fn Node::set_error_message(self : Node, id : NodeId) -> Unit

    Node::set_expanded

    fn Node::set_expanded(self : Node, value : Bool) -> Unit

    Node::set_flow_to

    fn Node::set_flow_to(self : Node, flow_to : Array[NodeId]) -> Unit

    Node::set_font_family

    fn Node::set_font_family(self : Node, font_family : String) -> Unit

    Node::set_font_size

    fn Node::set_font_size(self : Node, value : Float) -> Unit

    Node::set_font_weight

    fn Node::set_font_weight(self : Node, value : Float) -> Unit

    Node::set_foreground_color

    fn Node::set_foreground_color(self : Node, color : Color) -> Unit

    Node::set_has_popup

    fn Node::set_has_popup(self : Node, value : HasPopup) -> Unit

    Node::set_hidden

    fn Node::set_hidden(self : Node) -> Unit

    Node::set_html_tag

    fn Node::set_html_tag(self : Node, html_tag : String) -> Unit

    fn Node::set_in_page_link_target(self : Node, id : NodeId) -> Unit

    Node::set_inner_html

    fn Node::set_inner_html(self : Node, inner_html : String) -> Unit

    Node::set_invalid

    fn Node::set_invalid(self : Node, value : Invalid) -> Unit

    Node::set_is_grammar_error

    fn Node::set_is_grammar_error(self : Node) -> Unit

    Node::set_is_line_breaking_object

    fn Node::set_is_line_breaking_object(self : Node) -> Unit

    Node::set_is_page_breaking_object

    fn Node::set_is_page_breaking_object(self : Node) -> Unit

    Node::set_is_search_match

    fn Node::set_is_search_match(self : Node) -> Unit

    Node::set_is_spelling_error

    fn Node::set_is_spelling_error(self : Node) -> Unit

    Node::set_is_suggestion

    fn Node::set_is_suggestion(self : Node) -> Unit

    Node::set_italic

    fn Node::set_italic(self : Node) -> Unit

    Node::set_keyboard_shortcut

    fn Node::set_keyboard_shortcut(self : Node, keyboard_shortcut : String) -> Unit

    Node::set_label

    fn Node::set_label(self : Node, label : String) -> Unit

    Node::set_labelled_by

    fn Node::set_labelled_by(self : Node, labelled_by : Array[NodeId]) -> Unit

    Node::set_language

    fn Node::set_language(self : Node, language : String) -> Unit

    Node::set_level

    fn Node::set_level(self : Node, value : Int) -> Unit

    Node::set_list_style

    fn Node::set_list_style(self : Node, value : ListStyle) -> Unit

    Node::set_live

    fn Node::set_live(self : Node, value : Live) -> Unit

    Node::set_live_atomic

    fn Node::set_live_atomic(self : Node) -> Unit

    Node::set_max_numeric_value

    fn Node::set_max_numeric_value(self : Node, value : Double) -> Unit

    Node::set_member_of

    fn Node::set_member_of(self : Node, id : NodeId) -> Unit

    Node::set_min_numeric_value

    fn Node::set_min_numeric_value(self : Node, value : Double) -> Unit

    Node::set_modal

    fn Node::set_modal(self : Node) -> Unit

    Node::set_multiselectable

    fn Node::set_multiselectable(self : Node) -> Unit

    Node::set_next_on_line

    fn Node::set_next_on_line(self : Node, id : NodeId) -> Unit

    Node::set_numeric_value

    fn Node::set_numeric_value(self : Node, value : Double) -> Unit

    Node::set_numeric_value_jump

    fn Node::set_numeric_value_jump(self : Node, value : Double) -> Unit

    Node::set_numeric_value_step

    fn Node::set_numeric_value_step(self : Node, value : Double) -> Unit

    Node::set_orientation

    fn Node::set_orientation(self : Node, value : Orientation) -> Unit

    Node::set_overline

    fn Node::set_overline(self : Node, decoration : TextDecoration) -> Unit

    Node::set_owns

    fn Node::set_owns(self : Node, owns : Array[NodeId]) -> Unit

    Node::set_placeholder

    fn Node::set_placeholder(self : Node, placeholder : String) -> Unit

    Node::set_popup_for

    fn Node::set_popup_for(self : Node, id : NodeId) -> Unit

    Node::set_position_in_set

    fn Node::set_position_in_set(self : Node, value : Int) -> Unit

    Node::set_previous_on_line

    fn Node::set_previous_on_line(self : Node, id : NodeId) -> Unit

    Node::set_radio_group

    fn Node::set_radio_group(self : Node, radio_group : Array[NodeId]) -> Unit

    Node::set_read_only

    fn Node::set_read_only(self : Node) -> Unit

    Node::set_required

    fn Node::set_required(self : Node) -> Unit

    Node::set_role

    fn Node::set_role(self : Node, role : Role) -> Unit

    Node::set_role_description

    fn Node::set_role_description(self : Node, role_description : String) -> Unit

    Node::set_row_count

    fn Node::set_row_count(self : Node, value : Int) -> Unit

    Node::set_row_index

    fn Node::set_row_index(self : Node, value : Int) -> Unit

    Node::set_row_index_text

    fn Node::set_row_index_text(self : Node, row_index_text : String) -> Unit

    Node::set_row_span

    fn Node::set_row_span(self : Node, value : Int) -> Unit

    Node::set_scroll_x

    fn Node::set_scroll_x(self : Node, value : Double) -> Unit

    Node::set_scroll_x_max

    fn Node::set_scroll_x_max(self : Node, value : Double) -> Unit

    Node::set_scroll_x_min

    fn Node::set_scroll_x_min(self : Node, value : Double) -> Unit

    Node::set_scroll_y

    fn Node::set_scroll_y(self : Node, value : Double) -> Unit

    Node::set_scroll_y_max

    fn Node::set_scroll_y_max(self : Node, value : Double) -> Unit

    Node::set_scroll_y_min

    fn Node::set_scroll_y_min(self : Node, value : Double) -> Unit

    Node::set_selected

    fn Node::set_selected(self : Node, value : Bool) -> Unit

    Node::set_size_of_set

    fn Node::set_size_of_set(self : Node, value : Int) -> Unit

    Node::set_sort_direction

    fn Node::set_sort_direction(self : Node, value : SortDirection) -> Unit

    Node::set_state_description

    fn Node::set_state_description(self : Node, state_description : String) -> Unit

    Node::set_strikethrough

    fn Node::set_strikethrough(self : Node, decoration : TextDecoration) -> Unit

    Node::set_text_align

    fn Node::set_text_align(self : Node, value : TextAlign) -> Unit

    Node::set_text_direction

    fn Node::set_text_direction(self : Node, value : TextDirection) -> Unit

    Node::set_text_selection

    fn Node::set_text_selection(self : Node, value : TextSelection) -> Unit

    Node::set_toggled

    fn Node::set_toggled(self : Node, value : Toggled) -> Unit

    Node::set_tooltip

    fn Node::set_tooltip(self : Node, tooltip : String) -> Unit

    Node::set_touch_transparent

    fn Node::set_touch_transparent(self : Node) -> Unit

    Node::set_transform

    fn Node::set_transform(self : Node, value : Affine) -> Unit

    Node::set_tree_id

    fn Node::set_tree_id(self : Node, value : TreeId) -> Unit

    Node::set_underline

    fn Node::set_underline(self : Node, decoration : TextDecoration) -> Unit

    Node::set_url

    fn Node::set_url(self : Node, url : String) -> Unit

    Node::set_value

    fn Node::set_value(self : Node, value : String) -> Unit

    Node::set_vertical_offset

    fn Node::set_vertical_offset(self : Node, value : VerticalOffset) -> Unit

    Node::set_visited

    fn Node::set_visited(self : Node) -> Unit

    Node::set_word_starts

    fn Node::set_word_starts(self : Node, value : Array[Int]) -> Unit

    Node::size_of_set

    fn Node::size_of_set(self : Node) -> Int?

    Node::sort_direction

    fn Node::sort_direction(self : Node) -> SortDirection?

    Node::state_description

    fn Node::state_description(self : Node) -> String?

    Node::strikethrough

    fn Node::strikethrough(self : Node) -> TextDecoration?

    Node::supports_action

    fn Node::supports_action(self : Node, action : Action) -> Bool

    Node::text_align

    fn Node::text_align(self : Node) -> TextAlign?

    Node::text_direction

    fn Node::text_direction(self : Node) -> TextDirection?

    Node::text_selection

    fn Node::text_selection(self : Node) -> TextSelection?

    Node::toggled

    fn Node::toggled(self : Node) -> Toggled?

    Node::tooltip

    fn Node::tooltip(self : Node) -> String?

    Node::transform

    fn Node::transform(self : Node) -> Affine?

    Node::tree_id

    fn Node::tree_id(self : Node) -> TreeId?

    Node::underline

    fn Node::underline(self : Node) -> TextDecoration?

    Node::url

    fn Node::url(self : Node) -> String?

    Node::value

    fn Node::value(self : Node) -> String?

    Node::vertical_offset

    fn Node::vertical_offset(self : Node) -> VerticalOffset?

    Node::word_starts

    fn Node::word_starts(self : Node) -> Array[Int]

    NodeId

    pub(all) struct NodeId(UInt64) derive(Eq, Hash,
    Debug
    )

    impl Show for NodeId
    impl ToJson for NodeId

    NodeId::debug

    fn NodeId::debug(self : NodeId) -> String

    NodeId::from_u64

    fn NodeId::from_u64(value : UInt64) -> NodeId

    NodeId::inner

    #deprecated("Use `struct T(A)` to declare a newtype and use `.0` access the underlying type instead.")
    fn NodeId::inner(self : NodeId) -> UInt64
    Convert newtype to its underlying type, automatically derived.

    NodeId::new

    fn NodeId::new(value : UInt64) -> NodeId

    NodeId::root

    fn NodeId::root() -> NodeId

    NodeId::to_u64

    fn NodeId::to_u64(self : NodeId) -> UInt64

    NodeUpdate

    pub(all) struct NodeUpdate {
    // private fields

    fn new(id : NodeId, node : Node) -> NodeUpdate
    }

    NodeUpdate::id

    fn NodeUpdate::id(self : NodeUpdate) -> NodeId

    NodeUpdate::new

    fn NodeUpdate::new(id : NodeId, node : Node) -> NodeUpdate

    NodeUpdate::node

    fn NodeUpdate::node(self : NodeUpdate) -> Node

    Orientation

    pub(all) enum Orientation {
    Horizontal
    Vertical
    } derive(Eq,
    Debug
    )

    Point

    pub(all) struct Point {
    x : Double
    y : Double

    fn new(x : Double, y : Double) -> Point
    } derive(Eq,
    Debug
    )

    impl Show for Point
    impl ToJson for Point

    Point::new

    fn Point::new(x : Double, y : Double) -> Point

    Point::origin

    fn Point::origin() -> Point

    Point::to_vec2

    fn Point::to_vec2(self : Point) -> Vec2

    Point::zero

    fn Point::zero() -> Point

    Rect

    pub(all) struct Rect {
    x0 : Double
    y0 : Double
    x1 : Double
    y1 : Double

    fn new(x0 : Double, y0 : Double, x1 : Double, y1 : Double) -> Rect
    } derive(Eq,
    Debug
    )

    impl Show for Rect
    impl ToJson for Rect

    Rect::abs

    fn Rect::abs(self : Rect) -> Rect

    Rect::area

    fn Rect::area(self : Rect) -> Double

    Rect::contains

    fn Rect::contains(self : Rect, point : Point) -> Bool

    Rect::from_origin_size

    fn Rect::from_origin_size(origin : Point, size : Size) -> Rect

    Rect::from_points

    fn Rect::from_points(p0 : Point, p1 : Point) -> Rect

    Rect::height

    fn Rect::height(self : Rect) -> Double

    Rect::intersect

    fn Rect::intersect(self : Rect, other : Rect) -> Rect

    Rect::is_empty

    fn Rect::is_empty(self : Rect) -> Bool

    Rect::max_x

    fn Rect::max_x(self : Rect) -> Double

    Rect::max_y

    fn Rect::max_y(self : Rect) -> Double

    Rect::min_x

    fn Rect::min_x(self : Rect) -> Double

    Rect::min_y

    fn Rect::min_y(self : Rect) -> Double

    Rect::new

    fn Rect::new(x0 : Double, y0 : Double, x1 : Double, y1 : Double) -> Rect

    Rect::origin

    fn Rect::origin(self : Rect) -> Point

    Rect::size

    fn Rect::size(self : Rect) -> Size

    Rect::union

    fn Rect::union(self : Rect, other : Rect) -> Rect

    Rect::union_pt

    fn Rect::union_pt(self : Rect, pt : Point) -> Rect

    Rect::width

    fn Rect::width(self : Rect) -> Double

    Rect::with_origin

    fn Rect::with_origin(self : Rect, origin : Point) -> Rect

    Rect::with_size

    fn Rect::with_size(self : Rect, size : Size) -> Rect

    Rect::zero

    fn Rect::zero() -> Rect

    Role

    pub(all) enum Role {
    Unknown
    TextRun
    Cell
    Label
    Image
    Link
    Row
    ListItem
    ListMarker
    TreeItem
    ListBoxOption
    MenuItem
    MenuListOption
    Paragraph
    GenericContainer
    CheckBox
    RadioButton
    TextInput
    Button
    DefaultButton
    Pane
    RowHeader
    ColumnHeader
    RowGroup
    List
    Table
    LayoutTableCell
    LayoutTableRow
    LayoutTable
    Switch
    Menu
    MultilineTextInput
    SearchInput
    DateInput
    DateTimeInput
    WeekInput
    MonthInput
    TimeInput
    EmailInput
    NumberInput
    PasswordInput
    PhoneNumberInput
    UrlInput
    Abbr
    Alert
    AlertDialog
    Application
    Article
    Audio
    Banner
    Blockquote
    Canvas
    Caption
    Caret
    Code
    ColorWell
    ComboBox
    EditableComboBox
    Complementary
    Comment
    ContentDeletion
    ContentInsertion
    ContentInfo
    Definition
    DescriptionList
    Details
    Dialog
    DisclosureTriangle
    Document
    EmbeddedObject
    Emphasis
    Feed
    FigureCaption
    Figure
    Footer
    Form
    Grid
    GridCell
    Group
    Header
    Heading
    Iframe
    IframePresentational
    ImeCandidate
    Keyboard
    Legend
    LineBreak
    ListBox
    Log
    Main
    Mark
    Marquee
    Math
    MenuBar
    MenuItemCheckBox
    MenuItemRadio
    MenuListPopup
    Meter
    Navigation
    Note
    PluginObject
    ProgressIndicator
    RadioGroup
    Region
    RootWebArea
    Ruby
    RubyAnnotation
    ScrollBar
    ScrollView
    Search
    Section
    SectionFooter
    SectionHeader
    Slider
    SpinButton
    Splitter
    Status
    Strong
    Suggestion
    SvgRoot
    Tab
    TabList
    TabPanel
    Term
    Time
    Timer
    TitleBar
    Toolbar
    Tooltip
    Tree
    TreeGrid
    Video
    WebView
    Window
    PdfActionableHighlight
    PdfRoot
    GraphicsDocument
    GraphicsObject
    GraphicsSymbol
    DocAbstract
    DocAcknowledgements
    DocAfterword
    DocAppendix
    DocBackLink
    DocBiblioEntry
    DocBibliography
    DocBiblioRef
    DocChapter
    DocColophon
    DocConclusion
    DocCover
    DocCredit
    DocCredits
    DocDedication
    DocEndnote
    DocEndnotes
    DocEpigraph
    DocEpilogue
    DocErrata
    DocExample
    DocFootnote
    DocForeword
    DocGlossary
    DocGlossRef
    DocIndex
    DocIntroduction
    DocNoteRef
    DocNotice
    DocPageBreak
    DocPageFooter
    DocPageHeader
    DocPageList
    DocPart
    DocPreface
    DocPrologue
    DocPullquote
    DocQna
    DocSubtitle
    DocTip
    DocToc
    ListGrid
    Terminal
    } derive(Eq,
    Debug
    )

    impl Show for Role
    impl ToJson for Role

    ScrollHint

    pub(all) enum ScrollHint {
    TopLeft
    BottomRight
    TopEdge
    BottomEdge
    LeftEdge
    RightEdge
    } derive(Eq,
    Debug
    )

    ScrollUnit

    pub(all) enum ScrollUnit {
    Item
    Page
    } derive(Eq,
    Debug
    )

    Size

    pub(all) struct Size {
    width : Double
    height : Double

    fn new(width : Double, height : Double) -> Size
    } derive(Eq,
    Debug
    )

    impl Show for Size
    impl ToJson for Size

    Size::new

    fn Size::new(width : Double, height : Double) -> Size

    Size::to_vec2

    fn Size::to_vec2(self : Size) -> Vec2

    Size::zero

    fn Size::zero() -> Size

    SortDirection

    pub(all) enum SortDirection {
    Ascending
    Descending
    Other
    } derive(Eq,
    Debug
    )

    TextAlign

    pub(all) enum TextAlign {
    Left
    Right
    Center
    Justify
    } derive(Eq,
    Debug
    )

    impl Show for TextAlign
    impl ToJson for TextAlign

    TextDecoration

    pub(all) struct TextDecoration {
    style : TextDecorationStyle
    color : Color

    fn new(style : TextDecorationStyle, color : Color) -> TextDecoration
    } derive(Eq,
    Debug
    )

    TextDecorationStyle

    pub(all) enum TextDecorationStyle {
    Solid
    Dotted
    Dashed
    Double
    Wavy
    } derive(Eq,
    Debug
    )

    TextDirection

    pub(all) enum TextDirection {
    LeftToRight
    RightToLeft
    TopToBottom
    BottomToTop
    } derive(Eq,
    Debug
    )

    TextPosition

    pub(all) struct TextPosition {
    node : NodeId
    character_index : Int

    fn new(node : NodeId, character_index : Int) -> TextPosition
    } derive(Eq,
    Debug
    )

    TextPosition::new

    fn TextPosition::new(node : NodeId, character_index : Int) -> TextPosition

    TextSelection

    pub(all) struct TextSelection {
    anchor : TextPosition
    focus : TextPosition

    fn new(anchor : TextPosition, focus : TextPosition) -> TextSelection
    } derive(Eq,
    Debug
    )

    TextSelection::new

    Toggled

    pub(all) enum Toggled {
    False
    True
    Mixed
    } derive(Eq,
    Debug
    )

    impl Show for Toggled
    impl ToJson for Toggled

    Toggled::from_bool

    fn Toggled::from_bool(value : Bool) -> Toggled

    Tree

    pub(all) struct Tree {
    root : NodeId
    toolkit_name : String?
    toolkit_version : String?

    fn new(root : NodeId) -> Tree
    } derive(Eq,
    Debug
    )

    impl Show for Tree
    impl ToJson for Tree

    Tree::new

    fn Tree::new(root : NodeId) -> Tree

    Tree::root_id

    fn Tree::root_id(self : Tree) -> NodeId

    Tree::toolkit_name

    fn Tree::toolkit_name(self : Tree) -> String?

    Tree::toolkit_version

    fn Tree::toolkit_version(self : Tree) -> String?

    TreeId

    pub(all) struct TreeId(Uuid) derive(Eq, Hash,
    Debug
    )

    impl Show for TreeId
    impl ToJson for TreeId

    TreeId::debug

    fn TreeId::debug(self : TreeId) -> String

    TreeId::inner

    #deprecated("Use `struct T(A)` to declare a newtype and use `.0` access the underlying type instead.")
    fn TreeId::inner(self : TreeId) -> Uuid
    Convert newtype to its underlying type, automatically derived.

    TreeId::new

    fn TreeId::new(uuid : Uuid) -> TreeId

    TreeId::root

    fn TreeId::root() -> TreeId

    TreeUpdate

    pub(all) struct TreeUpdate {
    // private fields

    fn new(tree_id : TreeId, focus : NodeId) -> TreeUpdate
    }

    TreeUpdate::focus

    fn TreeUpdate::focus(self : TreeUpdate) -> NodeId

    TreeUpdate::new

    fn TreeUpdate::new(tree_id : TreeId, focus : NodeId) -> TreeUpdate

    TreeUpdate::nodes

    fn TreeUpdate::nodes(self : TreeUpdate) -> Array[NodeUpdate]

    TreeUpdate::push_node

    fn TreeUpdate::push_node(self : TreeUpdate, id : NodeId, node : Node) -> Unit

    TreeUpdate::set_tree

    fn TreeUpdate::set_tree(self : TreeUpdate, tree : Tree) -> Unit

    TreeUpdate::tree

    fn TreeUpdate::tree(self : TreeUpdate) -> Tree?

    TreeUpdate::tree_id

    fn TreeUpdate::tree_id(self : TreeUpdate) -> TreeId

    Uuid

    pub(all) struct Uuid {
    high : UInt64
    low : UInt64
    } derive(Eq, Hash,
    Debug
    )

    impl Show for Uuid
    impl ToJson for Uuid

    Uuid::debug

    fn Uuid::debug(self : Uuid) -> String

    Uuid::nil

    fn Uuid::nil() -> Uuid

    Vec2

    pub(all) struct Vec2 {
    x : Double
    y : Double

    fn new(x : Double, y : Double) -> Vec2
    } derive(Eq,
    Debug
    )

    impl Show for Vec2
    impl ToJson for Vec2

    Vec2::new

    fn Vec2::new(x : Double, y : Double) -> Vec2

    Vec2::to_point

    fn Vec2::to_point(self : Vec2) -> Point

    Vec2::to_size

    fn Vec2::to_size(self : Vec2) -> Size

    Vec2::zero

    fn Vec2::zero() -> Vec2

    VerticalOffset

    pub(all) enum VerticalOffset {
    Subscript
    Superscript
    } derive(Eq,
    Debug
    )

    action_mask_to_action_vec

    fn action_mask_to_action_vec(mask : UInt) -> Array[Action]