summaryrefslogtreecommitdiffstats
path: root/src/backends
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends')
-rw-r--r--src/backends/clang.rs7
-rw-r--r--src/backends/python.rs18
2 files changed, 17 insertions, 8 deletions
diff --git a/src/backends/clang.rs b/src/backends/clang.rs
index 11c316a..361c759 100644
--- a/src/backends/clang.rs
+++ b/src/backends/clang.rs
@@ -1,4 +1,4 @@
-use serde_derive::{ Serialize, Deserialize };
+use serde_derive::Deserialize;
use crate::backends::{ Backend, mk_tmp_dir, RunError };
use std::path::{ Path, PathBuf };
use std::io::{ Result as IoResult, Error, ErrorKind };
@@ -7,9 +7,10 @@ use std::collections::hash_map::DefaultHasher;
use std::hash::{ Hash, Hasher };
use crate::wait::{ ChildExitStatus, wait_child };
use std::time::Duration;
+use crate::serde_duration::deserialize_duration;
-#[derive(Debug, Serialize, Deserialize, Default)]
+#[derive(Debug, Deserialize, Default)]
pub struct ClangBackend {
template: Option<String>,
@@ -19,7 +20,7 @@ pub struct ClangBackend {
#[serde(default = "default_cc")]
cc: String,
- #[serde(default = "default_timeout")]
+ #[serde(default = "default_timeout", deserialize_with = "deserialize_duration")]
timeout: Duration
}
diff --git a/src/backends/python.rs b/src/backends/python.rs
index 3ee7b35..7e0dac1 100644
--- a/src/backends/python.rs
+++ b/src/backends/python.rs
@@ -1,14 +1,23 @@
-use serde_derive::{ Serialize, Deserialize };
+use serde_derive::Deserialize;
use crate::backends::{ Backend, RunError };
use std::process::{ Command };
use std::path::Path;
use crate::wait::{ wait_child, ChildExitStatus };
+use crate::serde_duration::deserialize_duration;
+use std::time::Duration;
-#[derive(Debug, Serialize, Deserialize, Default)]
+#[derive(Debug, Deserialize, Default)]
pub struct PythonBackend {
template: Option<String>,
version: Option<String>,
- timeout: Option<f32>,
+
+ #[serde(default = "default_timeout", deserialize_with = "deserialize_duration")]
+ timeout: Duration,
+}
+
+
+fn default_timeout() -> Duration {
+ Duration::from_secs(1)
}
@@ -39,7 +48,6 @@ impl Backend for PythonBackend {
.arg(fname.as_os_str())
.spawn()?;
- let timeout = std::time::Duration::from_secs_f32(self.timeout.unwrap_or(1.0));
- Ok(wait_child(child, timeout, timer)?)
+ Ok(wait_child(child, self.timeout, timer)?)
}
} \ No newline at end of file