#![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, press_half, press_keys, set_value, type_text};
pub use locate::{Located, locate, wait_element, wait_gone};
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, capture,
check_snapshot_freshness, check_snapshot_freshness_by_pattern, close_window, focus_window,
list_windows, persist_snapshot, resize_window, 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:?}"))
}