#![allow(unsafe_code)]
mod action;
#[allow(unsafe_op_in_unsafe_fn)] mod capture;
mod locate;
mod pointer;
mod read;
mod window;
pub mod input;
pub mod kbd;
pub mod mouse;
pub use capture::{ShotResult, screenshot_element, screenshot_rect, screenshot_window};
pub use action::{
InputResult, TypeOutcome, click, paste, press_half, press_keys, select_option, set_value,
toggle_element, type_text,
};
pub use locate::{
Located, StableOutcome, WaitPredicate, WaitProp, locate, wait_element, wait_gone,
wait_property, wait_stable,
};
pub use pointer::{
CoordOutcome, PointerAction, click_physical, drag_physical, pointer_at_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,
capture_hwnd, 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:?}"))
}