#![allow(unsafe_code)]
mod action;
mod locate;
mod pointer;
mod read;
mod window;
pub mod input;
pub mod kbd;
pub mod mouse;
pub use action::{
InputResult, TypeOutcome, click, paste, press_half, press_keys, select_option, set_value,
toggle_element, type_text,
};
pub use locate::{
Located, WaitPredicate, WaitProp, locate, wait_element, wait_gone, wait_property,
};
pub use pointer::{PointerAction, click_physical, drag_physical, pointer_physical, scroll_element};
pub use read::{
PROPS, PropertyInfo, VerifyKind, VerifyOutcome, extract_table, get_clipboard_text,
read_property, set_clipboard_text, verify,
};
pub use window::{
CaptureResult, MAX_DEPTH, MAX_ELEMENTS, WindowEntry, WindowInfo, WindowRef, capture,
check_snapshot_freshness, check_snapshot_freshness_by_pattern, close_window, close_window_by,
focus_window, focus_window_by, foreground_window, list_windows, parse_hwnd, persist_snapshot,
resize_window, resolve_app_path, wait_new_window, wait_window, window_identities,
};
use actl_core::{CtlError, ErrorCode};
pub(crate) fn timing() -> &'static actl_core::timing::Timing {
actl_core::timing::Timing::load()
}
pub(crate) fn internal(e: impl std::fmt::Debug) -> CtlError {
CtlError::new(ErrorCode::Internal, format!("{e:?}"))
}