diff options
Diffstat (limited to 'src/backends/python.rs')
-rw-r--r-- | src/backends/python.rs | 18 |
1 files changed, 13 insertions, 5 deletions
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 |