//! Platform-specific process and filesystem operations. //! //! Centralizes OS-dependent behavior behind a clean boundary so core //! modules don't scatter `#[cfg]` branches through product logic. #[derive(Debug, Clone, PartialEq, Eq)] pub struct ForegroundProcess { pub pid: u32, pub name: String, pub argv0: Option, pub cmdline: Option, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct ForegroundJob { pub process_group_id: u32, pub processes: Vec, } #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum Signal { Hangup, Terminate, Kill, } #[derive(Debug, Clone, PartialEq, Eq)] pub struct ClipboardCommand { pub program: &'static str, pub args: &'static [&'static str], } #[derive(Debug, Clone, PartialEq, Eq)] pub struct ClipboardImage { pub bytes: Vec, pub extension: &'static str, } #[cfg(target_os = "linux")] mod linux; #[cfg(target_os = "linux")] pub use linux::*; #[cfg(target_os = "macos")] mod macos; #[cfg(target_os = "macos")] pub use macos::*; #[cfg(not(any(target_os = "linux", target_os = "macos")))] mod fallback; #[cfg(not(any(target_os = "linux", target_os = "macos")))] pub use fallback::*;