machine_check_compile/
lib.rs

1#![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}