MoonBit port of Rust accesskit (common + consumer).
///|
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)
}pub(open) trait DeactivationHandler {
deactivate_accessibility(Self) -> Unit
}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
}pub(all) enum ActionData {
CustomAction(Int)
Value(String)
NumericValue(Double)
ScrollUnit(ScrollUnit)
ScrollHint(ScrollHint)
ScrollToPoint(Point)
SetScrollOffset(Point)
SetTextSelection(TextSelection)
}impl Eq for ActionDataimpl Show for ActionDataimpl ToJson for ActionDataimpl FromJson for ActionDatapub struct ActionRequest {
// private fields
}impl ToJson for ActionRequestimpl FromJson for ActionRequestpub(all) struct Affine {
a : Double
b : Double
c : Double
d : Double
e : Double
f : Double
}pub(all) enum AriaCurrent {
False
True
Page
Step
Location
Date
Time
}impl Eq for AriaCurrentimpl Show for AriaCurrentimpl ToJson for AriaCurrentimpl FromJson for AriaCurrentpub(all) enum AutoComplete {
Inline
List
Both
}impl Eq for AutoCompleteimpl Show for AutoCompleteimpl ToJson for AutoCompleteimpl FromJson for AutoCompletepub(all) struct Color {
red : Byte
green : Byte
blue : Byte
alpha : Byte
}pub(all) struct CustomAction {
id : Int
description : String
}impl Eq for CustomActionimpl Show for CustomActionimpl ToJson for CustomActionimpl FromJson for CustomActionpub(all) enum HasPopup {
Menu
Listbox
Tree
Grid
Dialog
}pub(all) enum Invalid {
True
Grammar
Spelling
}pub(all) enum ListStyle {
Circle
Disc
Image
Numeric
Square
Other
}pub(all) enum Live {
Off
Polite
Assertive
}pub struct Node {
// private fields
}pub(all) type NodeId UInt64pub struct NodeUpdate {
// private fields
}pub(all) enum Orientation {
Horizontal
Vertical
}impl Eq for Orientationimpl Show for Orientationimpl ToJson for Orientationimpl FromJson for Orientationpub(all) struct Point {
x : Double
y : Double
}pub(all) struct Rect {
x0 : Double
y0 : Double
x1 : Double
y1 : Double
}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
}pub(all) enum ScrollHint {
TopLeft
BottomRight
TopEdge
BottomEdge
LeftEdge
RightEdge
}impl Eq for ScrollHintimpl Show for ScrollHintimpl ToJson for ScrollHintimpl FromJson for ScrollHintpub(all) enum ScrollUnit {
Item
Page
}impl Eq for ScrollUnitimpl Show for ScrollUnitimpl ToJson for ScrollUnitimpl FromJson for ScrollUnitpub(all) struct Size {
width : Double
height : Double
}pub(all) enum SortDirection {
Ascending
Descending
Other
}impl Eq for SortDirectionimpl Show for SortDirectionimpl ToJson for SortDirectionimpl FromJson for SortDirectionpub(all) enum TextAlign {
Left
Right
Center
Justify
}impl Eq for TextDecorationimpl Show for TextDecorationimpl ToJson for TextDecorationimpl FromJson for TextDecorationpub(all) enum TextDecorationStyle {
Solid
Dotted
Dashed
Double
Wavy
}impl Eq for TextDecorationStyleimpl Show for TextDecorationStyleimpl ToJson for TextDecorationStyleimpl FromJson for TextDecorationStylepub(all) enum TextDirection {
LeftToRight
RightToLeft
TopToBottom
BottomToTop
}impl Eq for TextDirectionimpl Show for TextDirectionimpl ToJson for TextDirectionimpl FromJson for TextDirectionimpl Eq for TextPositionimpl Show for TextPositionimpl ToJson for TextPositionimpl FromJson for TextPositionimpl Eq for TextSelectionimpl Show for TextSelectionimpl ToJson for TextSelectionimpl FromJson for TextSelectionpub(all) enum Toggled {
False
True
Mixed
}pub struct TreeUpdate {
// private fields
}pub(all) struct Uuid {
high : UInt64
low : UInt64
}pub(all) struct Vec2 {
x : Double
y : Double
}pub(all) enum VerticalOffset {
Subscript
Superscript
}impl Eq for VerticalOffsetimpl Show for VerticalOffsetimpl ToJson for VerticalOffsetimpl FromJson for VerticalOffsetMoonBit port of Rust accesskit (common + consumer).