#[cfg(unix)]
mod unix;
#[cfg(windows)]
mod windows;
#[cfg(unix)]
pub use unix::GameProcessHandle;
#[cfg(windows)]
pub use windows::GameProcessHandle;
use crate::error::LaunchResult;
use async_trait::async_trait;
use std::process::Command;
#[async_trait]
pub trait GameProcess {
fn launch(command: Command) -> LaunchResult<Self>
where
Self: Sized;
async fn stop(&self) -> LaunchResult<()>;
async fn wait(&self) -> LaunchResult<()>;
async fn is_stopped(&self) -> LaunchResult<bool>;
fn is_stopped_blocking(&self) -> LaunchResult<bool>;
}