use std::error::Error;
mod target;
mod traced_process;
use target::Target;
use traced_process::TracedProcess;
#[derive(thiserror::Error, Debug)]
enum OpenError {
#[error("error finding target process: {0}")]
FindingTarget(#[from] target::FindTargetError),
#[error("error attaching to `meshdcd` target: {0}")]
Attaching(#[from] traced_process::AttachError),
}
pub fn open() -> Result<impl Iterator<Item = Blob>, impl Error> {
let target = Target::find().map_err(OpenError::from)?;
let attached =
TracedProcess::new(target.meshdcd_pid, target.meshdcd_tty_fd).map_err(OpenError::from)?;
Ok(attached)
}