//! Authorized subprocess launching, native I/O, and lifecycle supervision. //! //! `Launcher` checks live capabilities; `Process` drains output and reaps //! after descendant cleanup. `Scope` retains descendants across command exits //! until cancellation or drop, serializing launches and result publication. //! //! Hosts using retained scopes must dispatch `ANCHOR_ARG` to `anchor`. //! Processes that explicitly escape their process group are not contained. #[cfg(any(target_os = "linux", target_os = "macos"))] #[path = "unix.rs"] mod sys; #[cfg(windows)] #[path = "windows.rs"] mod sys; #[cfg(any(target_os = "linux", target_os = "macos", windows))] pub use sys::*; #[cfg(any(target_os = "linux", target_os = "macos", windows))] mod launch; #[cfg(any(target_os = "linux", target_os = "macos", windows))] mod managed; #[cfg(any(target_os = "linux", target_os = "macos", windows))] mod scope; #[cfg(any(target_os = "linux", target_os = "macos", windows))] pub use launch::{Launch, spawn}; #[cfg(any(target_os = "linux", target_os = "macos", windows))] pub use managed::{ Input, Launcher, Options, Output, Process, Status, StdioSpec, TerminalSize, Termination, }; #[cfg(any(target_os = "linux", target_os = "macos", windows))] pub use scope::Scope; #[cfg(unix)] pub mod signals; mod group; #[cfg(windows)] mod job; pub use group::{ANCHOR_ARG, Group, anchor};