#![allow(unsafe_code)]
mod action;
mod bg_style;
#[allow(unsafe_op_in_unsafe_fn)] mod capture;
pub mod desktop;
pub mod display_gate;
pub mod display_support;
mod feedback;
mod handoff;
mod identity;
mod idle;
mod input_verify;
mod locate;
pub use identity::ReplayGuard;
mod native_windows;
mod observation;
mod pointer;
mod read;
mod read_channel;
mod scoped_locate;
mod table;
pub use table::{TableResult, extract_table};
mod window;
mod window_ready;
pub use window_ready::wait_window_ready;
pub mod input;
pub mod kbd;
pub mod mouse;
pub use capture::{ShotResult, screenshot_element, screenshot_rect, screenshot_window};
pub use native_windows::{native_window, native_windows};
pub use action::{
InputResult, TypeOutcome, click, paste, press_half, press_half_with_direction, press_keys,
press_keys_targeted, select_option, set_value, toggle_element, type_text,
};
pub use idle::{idle_ms, wait_idle};
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, 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:?}"))
}