1use std::error::Error as StdError;
2use std::io;
3use std::process::Output;
4use std::string::FromUtf8Error;
5
6#[derive(thiserror::Error, Debug)]
7pub enum Error<PE: StdError> {
8 #[error("subprocess stdout contains non-utf8 characters")]
9 NonUtf8Stdout(#[source] FromUtf8Error),
10 #[error("could not parse subprocess output")]
11 ParsingError(#[source] PE),
12 #[error("could not spawn subprocess")]
13 ProcessNotSpawned(#[source] io::Error),
14 #[error("could not read subprocess stdout")]
15 StdoutUnreadable(#[source] io::Error),
16 #[error("subprocess failed")]
17 WaitFailed(#[source] io::Error),
18 #[error("subprocess finished with error")]
19 ProcessFailed(Output),
20}
21
22#[derive(thiserror::Error, Debug, Copy, Clone, Eq, PartialEq)]
24pub enum NeverError {}