shellfn_core/
error.rs

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// TODO: replace with `!` after stabilization
23#[derive(thiserror::Error, Debug, Copy, Clone, Eq, PartialEq)]
24pub enum NeverError {}