launch_pad/
error.rs

1// SPDX-License-Identifier: MPL-2.0
2
3use crate::ProcessKey;
4use std::borrow::Cow;
5use thiserror::Error as ThisError;
6use tokio::sync::oneshot::error::RecvError;
7
8#[derive(Debug, ThisError)]
9pub enum Error {
10    #[error("invalid process {:?}", .0)]
11    InvalidProcess(ProcessKey),
12    #[error("failed to receive return message: {0}")]
13    ReturnMessage(#[from] RecvError),
14    #[error("failed to start process: {0}")]
15    Process(std::io::Error),
16    #[error("process does not exist")]
17    NonExistantProcess,
18    #[error("process manager has been shut down")]
19    Stopped,
20    #[error("failed to send message to process stdin: {0}")]
21    StdinMessage(#[from] tokio::sync::mpsc::error::SendError<Cow<'static, [u8]>>),
22    #[error("recever for stdin messages is missing from process")]
23    MissingStdinReceiver,
24}
25
26pub type Result<T> = std::result::Result<T, Error>;