machine_check_compile/
lib.rs1#![doc = include_str!("../README.md")]
2
3use std::{path::PathBuf, process::ExitStatus};
4
5use camino::Utf8PathBuf;
6use thiserror::Error;
7
8mod features;
9mod prepare;
10mod util;
11mod verify;
12
13pub use verify::verify;
14pub use verify::Config as VerifyConfig;
15
16pub use prepare::prepare;
17pub use prepare::Config as PrepareConfig;
18
19#[derive(Debug, Error)]
20pub enum Error {
21 #[error("could not serialize: {0}")]
22 Serialize(#[from] serde_json::Error),
23 #[error("could not flush to file {0}")]
24 Flush(Utf8PathBuf, #[source] std::io::Error),
25 #[error("could not determine working directory path")]
26 WorkDir(#[source] std::io::Error),
27 #[error("could not determine current executable path")]
28 CurrentExe(#[source] std::io::Error),
29 #[error("could not create directory {0}")]
30 CreateDir(Utf8PathBuf, #[source] std::io::Error),
31 #[error("could not create temporary directory")]
32 CreateTempDir(#[source] std::io::Error),
33 #[error("could not create file {0}")]
34 CreateFile(Utf8PathBuf, #[source] std::io::Error),
35 #[error("could not open file {0}")]
36 OpenFile(Utf8PathBuf, #[source] std::io::Error),
37 #[error("could not read file {0}")]
38 ReadFile(Utf8PathBuf, #[source] std::io::Error),
39 #[error("could not write to file {0}")]
40 WriteFile(Utf8PathBuf, #[source] std::io::Error),
41 #[error("could not write to standard output")]
42 WriteStdout(#[source] std::io::Error),
43 #[error("could not remove directory and contents of directory {0}")]
44 RemoveDirAll(Utf8PathBuf, #[source] std::io::Error),
45 #[error("could convert path to UTF-8")]
46 PathToUtf8(PathBuf, #[source] camino::FromPathBufError),
47 #[error("error running build")]
48 BuildRun(#[source] std::io::Error),
49 #[error("build failed with status {0}")]
50 BuildStatus(ExitStatus),
51 #[error("unparseable rustc output")]
52 RustcParse(#[source] std::string::FromUtf8Error),
53 #[error("unparseable cargo output")]
54 CargoParse(#[source] std::io::Error),
55 #[error("error running execution")]
56 ExecRun(#[source] std::io::Error),
57 #[error("execution failed with status {0}")]
58 ExecStatus(ExitStatus),
59 #[error("instead of one executable, {0} built")]
60 BuildAmount(usize),
61 #[error("GUI opened")]
62 Gui,
63}