summaryrefslogtreecommitdiffstats
path: root/src/backends/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/mod.rs')
-rw-r--r--src/backends/mod.rs19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/backends/mod.rs b/src/backends/mod.rs
index 0af1bb1..3bf9fc7 100644
--- a/src/backends/mod.rs
+++ b/src/backends/mod.rs
@@ -1,8 +1,8 @@
use std::path::{ Path, PathBuf };
use std::env::temp_dir;
use lazy_static::lazy_static;
-use std::io::{ Error, ErrorKind, Result };
-use nix::sys::signal::Signal as NixSignal;
+use std::io::{ Error, ErrorKind };
+use crate::wait::{ WaitInfo };
pub mod python;
pub mod clang;
@@ -10,24 +10,21 @@ pub mod clang;
pub use python::PythonBackend;
pub use clang::ClangBackend;
+pub mod run_error;
+pub use run_error::RunError;
+
+
lazy_static! {
static ref EVR_TMP_DIR: PathBuf = temp_dir().join("evr-tmp");
}
-pub enum RunStatus {
- Success,
- ErrorCode(i32),
- TimedOut(std::time::Duration),
- Signal(NixSignal, bool),
-}
-
pub trait Backend {
fn get_template(&self) -> Option<&str>;
- fn run(&self, fname: &Path) -> Result<RunStatus>;
+ fn run(&self, fname: &Path) -> Result<WaitInfo, RunError>;
}
-fn mk_tmp_dir() -> Result<&'static std::path::PathBuf> {
+fn mk_tmp_dir() -> std::io::Result<&'static std::path::PathBuf> {
if !EVR_TMP_DIR.exists() {
std::fs::create_dir(&*EVR_TMP_DIR)?;
} else {