#[non_exhaustive]pub struct AppState {
pub app: AppInfo,
pub window: WindowInfo,
pub elements: Vec<Element>,
pub truncated: bool,
pub tree_included: bool,
pub focused: Option<usize>,
pub selected_text: Option<String>,
pub screenshot: Option<Screenshot>,
pub captured_at: SystemTime,
pub notes: Vec<String>,
}Expand description
A snapshot of one app window.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.app: AppInfoThe app.
window: WindowInfoThe captured window.
elements: Vec<Element>Accessibility elements in depth-first order; elements[i].index == i.
truncated: boolWhether node or depth limits cut the tree short.
tree_included: boolWhether the tree was requested at all.
focused: Option<usize>Index of the focused element, if it is part of the tree.
selected_text: Option<String>Currently selected text in the focused element.
screenshot: Option<Screenshot>Screenshot of the window.
captured_at: SystemTimeWhen the state was captured.
notes: Vec<String>Non-fatal problems encountered while capturing, e.g. why the screenshot is missing.
Implementations§
Source§impl AppState
impl AppState
Sourcepub fn focused_element(&self) -> Option<&Element>
pub fn focused_element(&self) -> Option<&Element>
The focused element.
Sourcepub fn find(
&self,
query: &ElementQuery,
) -> impl Iterator<Item = &Element> + use<'_>
pub fn find( &self, query: &ElementQuery, ) -> impl Iterator<Item = &Element> + use<'_>
Elements matching query, in tree order.
Sourcepub fn element_at(&self, point: Point) -> Option<&Element>
pub fn element_at(&self, point: Point) -> Option<&Element>
The deepest element whose frame contains the screen point, preferring actionable ones.
Sourcepub fn render(&self) -> String
pub fn render(&self) -> String
Renders the state as compact, human-readable text (also handy as language-model input).
Each element is one tab-indented line beginning with its index:
App=com.apple.TextEdit (pid 812)
Window: "Untitled", App: TextEdit.
0 standard window Untitled
1 text area (focused, settable, editable) Value: Hello
2 button Close Secondary Actions: Show MenuTrait Implementations§
Auto Trait Implementations§
impl Forget for AppState
impl Freeze for AppState
impl RefUnwindSafe for AppState
impl Send for AppState
impl Sync for AppState
impl Unpin for AppState
impl UnsafeUnpin for AppState
impl UnwindSafe for AppState
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more