mirror of
https://github.com/lahfir/agent-desktop.git
synced 2026-08-06 14:10:43 +00:00
refactor(ffi): split types.rs into one module per type
Move the 28 packed #[repr(C)] structs and #[repr(i32)] enums from
crates/ffi/src/types.rs into crates/ffi/src/types/{point,rect,node,
action,...}.rs, one declaration per file. types/mod.rs carries
explicit pub mod + pub use per type, so callers keep the same
`use crate::types::AdFoo` paths and cbindgen emits a byte-identical
generated header.
Purely mechanical; no behavior, signature, or ABI change. Unit R
precondition for later fix work where individual types are extended
(AdTreeOptions.surface, AdImageBuffer length encapsulation, etc.).
This commit is contained in:
parent
f54087fb3a
commit
c2ea56c295
30 changed files with 320 additions and 250 deletions
|
|
@ -1,250 +0,0 @@
|
|||
use std::os::raw::c_char;
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct AdRect {
|
||||
pub x: f64,
|
||||
pub y: f64,
|
||||
pub width: f64,
|
||||
pub height: f64,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct AdPoint {
|
||||
pub x: f64,
|
||||
pub y: f64,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdWindowInfo {
|
||||
pub id: *const c_char,
|
||||
pub title: *const c_char,
|
||||
pub app_name: *const c_char,
|
||||
pub pid: i32,
|
||||
pub bounds: AdRect,
|
||||
pub has_bounds: bool,
|
||||
pub is_focused: bool,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdAppInfo {
|
||||
pub name: *const c_char,
|
||||
pub pid: i32,
|
||||
pub bundle_id: *const c_char,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdSurfaceInfo {
|
||||
pub kind: *const c_char,
|
||||
pub title: *const c_char,
|
||||
pub item_count: i64,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdNode {
|
||||
pub ref_id: *const c_char,
|
||||
pub role: *const c_char,
|
||||
pub name: *const c_char,
|
||||
pub value: *const c_char,
|
||||
pub description: *const c_char,
|
||||
pub hint: *const c_char,
|
||||
pub states: *mut *mut c_char,
|
||||
pub state_count: u32,
|
||||
pub bounds: AdRect,
|
||||
pub has_bounds: bool,
|
||||
pub parent_index: i32,
|
||||
pub child_start: u32,
|
||||
pub child_count: u32,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdNodeTree {
|
||||
pub nodes: *mut AdNode,
|
||||
pub count: u32,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdTreeOptions {
|
||||
pub max_depth: u8,
|
||||
pub include_bounds: bool,
|
||||
pub interactive_only: bool,
|
||||
pub compact: bool,
|
||||
}
|
||||
|
||||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdActionKind {
|
||||
Click = 0,
|
||||
DoubleClick = 1,
|
||||
RightClick = 2,
|
||||
TripleClick = 3,
|
||||
SetValue = 4,
|
||||
SetFocus = 5,
|
||||
Expand = 6,
|
||||
Collapse = 7,
|
||||
Select = 8,
|
||||
Toggle = 9,
|
||||
Check = 10,
|
||||
Uncheck = 11,
|
||||
Scroll = 12,
|
||||
ScrollTo = 13,
|
||||
PressKey = 14,
|
||||
KeyDown = 15,
|
||||
KeyUp = 16,
|
||||
TypeText = 17,
|
||||
Clear = 18,
|
||||
Hover = 19,
|
||||
Drag = 20,
|
||||
}
|
||||
|
||||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdDirection {
|
||||
Up = 0,
|
||||
Down = 1,
|
||||
Left = 2,
|
||||
Right = 3,
|
||||
}
|
||||
|
||||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdModifier {
|
||||
Cmd = 0,
|
||||
Ctrl = 1,
|
||||
Alt = 2,
|
||||
Shift = 3,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdKeyCombo {
|
||||
pub key: *const c_char,
|
||||
pub modifiers: *const AdModifier,
|
||||
pub modifier_count: u32,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdDragParams {
|
||||
pub from: AdPoint,
|
||||
pub to: AdPoint,
|
||||
pub duration_ms: u64,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdScrollParams {
|
||||
pub direction: AdDirection,
|
||||
pub amount: u32,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdAction {
|
||||
pub kind: AdActionKind,
|
||||
pub text: *const c_char,
|
||||
pub scroll: AdScrollParams,
|
||||
pub key: AdKeyCombo,
|
||||
pub drag: AdDragParams,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdElementState {
|
||||
pub role: *const c_char,
|
||||
pub states: *mut *mut c_char,
|
||||
pub state_count: u32,
|
||||
pub value: *const c_char,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdActionResult {
|
||||
pub action: *const c_char,
|
||||
pub ref_id: *const c_char,
|
||||
pub post_state: *mut AdElementState,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdNativeHandle {
|
||||
pub ptr: *const std::ffi::c_void,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdRefEntry {
|
||||
pub pid: i32,
|
||||
pub role: *const c_char,
|
||||
pub name: *const c_char,
|
||||
pub bounds_hash: u64,
|
||||
pub has_bounds_hash: bool,
|
||||
}
|
||||
|
||||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdWindowOpKind {
|
||||
Resize = 0,
|
||||
Move = 1,
|
||||
Minimize = 2,
|
||||
Maximize = 3,
|
||||
Restore = 4,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdWindowOp {
|
||||
pub kind: AdWindowOpKind,
|
||||
pub width: f64,
|
||||
pub height: f64,
|
||||
pub x: f64,
|
||||
pub y: f64,
|
||||
}
|
||||
|
||||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdMouseButton {
|
||||
Left = 0,
|
||||
Right = 1,
|
||||
Middle = 2,
|
||||
}
|
||||
|
||||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdMouseEventKind {
|
||||
Move = 0,
|
||||
Down = 1,
|
||||
Up = 2,
|
||||
Click = 3,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdMouseEvent {
|
||||
pub kind: AdMouseEventKind,
|
||||
pub point: AdPoint,
|
||||
pub button: AdMouseButton,
|
||||
pub click_count: u32,
|
||||
}
|
||||
|
||||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdImageFormat {
|
||||
Png = 0,
|
||||
Jpg = 1,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdImageBuffer {
|
||||
pub data: *const u8,
|
||||
pub data_len: u64,
|
||||
pub format: AdImageFormat,
|
||||
pub width: u32,
|
||||
pub height: u32,
|
||||
}
|
||||
|
||||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdScreenshotKind {
|
||||
Screen = 0,
|
||||
Window = 1,
|
||||
FullScreen = 2,
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdScreenshotTarget {
|
||||
pub kind: AdScreenshotKind,
|
||||
pub screen_index: u64,
|
||||
pub pid: i32,
|
||||
}
|
||||
14
crates/ffi/src/types/action.rs
Normal file
14
crates/ffi/src/types/action.rs
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
use crate::types::action_kind::AdActionKind;
|
||||
use crate::types::drag_params::AdDragParams;
|
||||
use crate::types::key_combo::AdKeyCombo;
|
||||
use crate::types::scroll_params::AdScrollParams;
|
||||
use std::os::raw::c_char;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdAction {
|
||||
pub kind: AdActionKind,
|
||||
pub text: *const c_char,
|
||||
pub scroll: AdScrollParams,
|
||||
pub key: AdKeyCombo,
|
||||
pub drag: AdDragParams,
|
||||
}
|
||||
25
crates/ffi/src/types/action_kind.rs
Normal file
25
crates/ffi/src/types/action_kind.rs
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdActionKind {
|
||||
Click = 0,
|
||||
DoubleClick = 1,
|
||||
RightClick = 2,
|
||||
TripleClick = 3,
|
||||
SetValue = 4,
|
||||
SetFocus = 5,
|
||||
Expand = 6,
|
||||
Collapse = 7,
|
||||
Select = 8,
|
||||
Toggle = 9,
|
||||
Check = 10,
|
||||
Uncheck = 11,
|
||||
Scroll = 12,
|
||||
ScrollTo = 13,
|
||||
PressKey = 14,
|
||||
KeyDown = 15,
|
||||
KeyUp = 16,
|
||||
TypeText = 17,
|
||||
Clear = 18,
|
||||
Hover = 19,
|
||||
Drag = 20,
|
||||
}
|
||||
9
crates/ffi/src/types/action_result.rs
Normal file
9
crates/ffi/src/types/action_result.rs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
use crate::types::element_state::AdElementState;
|
||||
use std::os::raw::c_char;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdActionResult {
|
||||
pub action: *const c_char,
|
||||
pub ref_id: *const c_char,
|
||||
pub post_state: *mut AdElementState,
|
||||
}
|
||||
8
crates/ffi/src/types/app_info.rs
Normal file
8
crates/ffi/src/types/app_info.rs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
use std::os::raw::c_char;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdAppInfo {
|
||||
pub name: *const c_char,
|
||||
pub pid: i32,
|
||||
pub bundle_id: *const c_char,
|
||||
}
|
||||
8
crates/ffi/src/types/direction.rs
Normal file
8
crates/ffi/src/types/direction.rs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdDirection {
|
||||
Up = 0,
|
||||
Down = 1,
|
||||
Left = 2,
|
||||
Right = 3,
|
||||
}
|
||||
8
crates/ffi/src/types/drag_params.rs
Normal file
8
crates/ffi/src/types/drag_params.rs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
use crate::types::point::AdPoint;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdDragParams {
|
||||
pub from: AdPoint,
|
||||
pub to: AdPoint,
|
||||
pub duration_ms: u64,
|
||||
}
|
||||
9
crates/ffi/src/types/element_state.rs
Normal file
9
crates/ffi/src/types/element_state.rs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
use std::os::raw::c_char;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdElementState {
|
||||
pub role: *const c_char,
|
||||
pub states: *mut *mut c_char,
|
||||
pub state_count: u32,
|
||||
pub value: *const c_char,
|
||||
}
|
||||
10
crates/ffi/src/types/image_buffer.rs
Normal file
10
crates/ffi/src/types/image_buffer.rs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
use crate::types::image_format::AdImageFormat;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdImageBuffer {
|
||||
pub data: *const u8,
|
||||
pub data_len: u64,
|
||||
pub format: AdImageFormat,
|
||||
pub width: u32,
|
||||
pub height: u32,
|
||||
}
|
||||
6
crates/ffi/src/types/image_format.rs
Normal file
6
crates/ffi/src/types/image_format.rs
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdImageFormat {
|
||||
Png = 0,
|
||||
Jpg = 1,
|
||||
}
|
||||
9
crates/ffi/src/types/key_combo.rs
Normal file
9
crates/ffi/src/types/key_combo.rs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
use crate::types::modifier::AdModifier;
|
||||
use std::os::raw::c_char;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdKeyCombo {
|
||||
pub key: *const c_char,
|
||||
pub modifiers: *const AdModifier,
|
||||
pub modifier_count: u32,
|
||||
}
|
||||
57
crates/ffi/src/types/mod.rs
Normal file
57
crates/ffi/src/types/mod.rs
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
pub mod action;
|
||||
pub mod action_kind;
|
||||
pub mod action_result;
|
||||
pub mod app_info;
|
||||
pub mod direction;
|
||||
pub mod drag_params;
|
||||
pub mod element_state;
|
||||
pub mod image_buffer;
|
||||
pub mod image_format;
|
||||
pub mod key_combo;
|
||||
pub mod modifier;
|
||||
pub mod mouse_button;
|
||||
pub mod mouse_event;
|
||||
pub mod mouse_event_kind;
|
||||
pub mod native_handle;
|
||||
pub mod node;
|
||||
pub mod node_tree;
|
||||
pub mod point;
|
||||
pub mod rect;
|
||||
pub mod ref_entry;
|
||||
pub mod screenshot_kind;
|
||||
pub mod screenshot_target;
|
||||
pub mod scroll_params;
|
||||
pub mod surface_info;
|
||||
pub mod tree_options;
|
||||
pub mod window_info;
|
||||
pub mod window_op;
|
||||
pub mod window_op_kind;
|
||||
|
||||
pub use action::AdAction;
|
||||
pub use action_kind::AdActionKind;
|
||||
pub use action_result::AdActionResult;
|
||||
pub use app_info::AdAppInfo;
|
||||
pub use direction::AdDirection;
|
||||
pub use drag_params::AdDragParams;
|
||||
pub use element_state::AdElementState;
|
||||
pub use image_buffer::AdImageBuffer;
|
||||
pub use image_format::AdImageFormat;
|
||||
pub use key_combo::AdKeyCombo;
|
||||
pub use modifier::AdModifier;
|
||||
pub use mouse_button::AdMouseButton;
|
||||
pub use mouse_event::AdMouseEvent;
|
||||
pub use mouse_event_kind::AdMouseEventKind;
|
||||
pub use native_handle::AdNativeHandle;
|
||||
pub use node::AdNode;
|
||||
pub use node_tree::AdNodeTree;
|
||||
pub use point::AdPoint;
|
||||
pub use rect::AdRect;
|
||||
pub use ref_entry::AdRefEntry;
|
||||
pub use screenshot_kind::AdScreenshotKind;
|
||||
pub use screenshot_target::AdScreenshotTarget;
|
||||
pub use scroll_params::AdScrollParams;
|
||||
pub use surface_info::AdSurfaceInfo;
|
||||
pub use tree_options::AdTreeOptions;
|
||||
pub use window_info::AdWindowInfo;
|
||||
pub use window_op::AdWindowOp;
|
||||
pub use window_op_kind::AdWindowOpKind;
|
||||
8
crates/ffi/src/types/modifier.rs
Normal file
8
crates/ffi/src/types/modifier.rs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdModifier {
|
||||
Cmd = 0,
|
||||
Ctrl = 1,
|
||||
Alt = 2,
|
||||
Shift = 3,
|
||||
}
|
||||
7
crates/ffi/src/types/mouse_button.rs
Normal file
7
crates/ffi/src/types/mouse_button.rs
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdMouseButton {
|
||||
Left = 0,
|
||||
Right = 1,
|
||||
Middle = 2,
|
||||
}
|
||||
11
crates/ffi/src/types/mouse_event.rs
Normal file
11
crates/ffi/src/types/mouse_event.rs
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
use crate::types::mouse_button::AdMouseButton;
|
||||
use crate::types::mouse_event_kind::AdMouseEventKind;
|
||||
use crate::types::point::AdPoint;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdMouseEvent {
|
||||
pub kind: AdMouseEventKind,
|
||||
pub point: AdPoint,
|
||||
pub button: AdMouseButton,
|
||||
pub click_count: u32,
|
||||
}
|
||||
8
crates/ffi/src/types/mouse_event_kind.rs
Normal file
8
crates/ffi/src/types/mouse_event_kind.rs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdMouseEventKind {
|
||||
Move = 0,
|
||||
Down = 1,
|
||||
Up = 2,
|
||||
Click = 3,
|
||||
}
|
||||
4
crates/ffi/src/types/native_handle.rs
Normal file
4
crates/ffi/src/types/native_handle.rs
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#[repr(C)]
|
||||
pub struct AdNativeHandle {
|
||||
pub ptr: *const std::ffi::c_void,
|
||||
}
|
||||
19
crates/ffi/src/types/node.rs
Normal file
19
crates/ffi/src/types/node.rs
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
use crate::types::rect::AdRect;
|
||||
use std::os::raw::c_char;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdNode {
|
||||
pub ref_id: *const c_char,
|
||||
pub role: *const c_char,
|
||||
pub name: *const c_char,
|
||||
pub value: *const c_char,
|
||||
pub description: *const c_char,
|
||||
pub hint: *const c_char,
|
||||
pub states: *mut *mut c_char,
|
||||
pub state_count: u32,
|
||||
pub bounds: AdRect,
|
||||
pub has_bounds: bool,
|
||||
pub parent_index: i32,
|
||||
pub child_start: u32,
|
||||
pub child_count: u32,
|
||||
}
|
||||
7
crates/ffi/src/types/node_tree.rs
Normal file
7
crates/ffi/src/types/node_tree.rs
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
use crate::types::node::AdNode;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdNodeTree {
|
||||
pub nodes: *mut AdNode,
|
||||
pub count: u32,
|
||||
}
|
||||
6
crates/ffi/src/types/point.rs
Normal file
6
crates/ffi/src/types/point.rs
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#[repr(C)]
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct AdPoint {
|
||||
pub x: f64,
|
||||
pub y: f64,
|
||||
}
|
||||
8
crates/ffi/src/types/rect.rs
Normal file
8
crates/ffi/src/types/rect.rs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#[repr(C)]
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
pub struct AdRect {
|
||||
pub x: f64,
|
||||
pub y: f64,
|
||||
pub width: f64,
|
||||
pub height: f64,
|
||||
}
|
||||
10
crates/ffi/src/types/ref_entry.rs
Normal file
10
crates/ffi/src/types/ref_entry.rs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
use std::os::raw::c_char;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdRefEntry {
|
||||
pub pid: i32,
|
||||
pub role: *const c_char,
|
||||
pub name: *const c_char,
|
||||
pub bounds_hash: u64,
|
||||
pub has_bounds_hash: bool,
|
||||
}
|
||||
7
crates/ffi/src/types/screenshot_kind.rs
Normal file
7
crates/ffi/src/types/screenshot_kind.rs
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdScreenshotKind {
|
||||
Screen = 0,
|
||||
Window = 1,
|
||||
FullScreen = 2,
|
||||
}
|
||||
8
crates/ffi/src/types/screenshot_target.rs
Normal file
8
crates/ffi/src/types/screenshot_target.rs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
use crate::types::screenshot_kind::AdScreenshotKind;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdScreenshotTarget {
|
||||
pub kind: AdScreenshotKind,
|
||||
pub screen_index: u64,
|
||||
pub pid: i32,
|
||||
}
|
||||
7
crates/ffi/src/types/scroll_params.rs
Normal file
7
crates/ffi/src/types/scroll_params.rs
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
use crate::types::direction::AdDirection;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdScrollParams {
|
||||
pub direction: AdDirection,
|
||||
pub amount: u32,
|
||||
}
|
||||
8
crates/ffi/src/types/surface_info.rs
Normal file
8
crates/ffi/src/types/surface_info.rs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
use std::os::raw::c_char;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdSurfaceInfo {
|
||||
pub kind: *const c_char,
|
||||
pub title: *const c_char,
|
||||
pub item_count: i64,
|
||||
}
|
||||
7
crates/ffi/src/types/tree_options.rs
Normal file
7
crates/ffi/src/types/tree_options.rs
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
#[repr(C)]
|
||||
pub struct AdTreeOptions {
|
||||
pub max_depth: u8,
|
||||
pub include_bounds: bool,
|
||||
pub interactive_only: bool,
|
||||
pub compact: bool,
|
||||
}
|
||||
13
crates/ffi/src/types/window_info.rs
Normal file
13
crates/ffi/src/types/window_info.rs
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
use crate::types::rect::AdRect;
|
||||
use std::os::raw::c_char;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdWindowInfo {
|
||||
pub id: *const c_char,
|
||||
pub title: *const c_char,
|
||||
pub app_name: *const c_char,
|
||||
pub pid: i32,
|
||||
pub bounds: AdRect,
|
||||
pub has_bounds: bool,
|
||||
pub is_focused: bool,
|
||||
}
|
||||
10
crates/ffi/src/types/window_op.rs
Normal file
10
crates/ffi/src/types/window_op.rs
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
use crate::types::window_op_kind::AdWindowOpKind;
|
||||
|
||||
#[repr(C)]
|
||||
pub struct AdWindowOp {
|
||||
pub kind: AdWindowOpKind,
|
||||
pub width: f64,
|
||||
pub height: f64,
|
||||
pub x: f64,
|
||||
pub y: f64,
|
||||
}
|
||||
9
crates/ffi/src/types/window_op_kind.rs
Normal file
9
crates/ffi/src/types/window_op_kind.rs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#[repr(i32)]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub enum AdWindowOpKind {
|
||||
Resize = 0,
|
||||
Move = 1,
|
||||
Minimize = 2,
|
||||
Maximize = 3,
|
||||
Restore = 4,
|
||||
}
|
||||
Loading…
Reference in a new issue