diff options
Diffstat (limited to 'src/backends')
-rw-r--r-- | src/backends/clang.rs | 15 | ||||
-rw-r--r-- | src/backends/clang_c.rs | 15 | ||||
-rw-r--r-- | src/backends/mod.rs | 12 |
3 files changed, 16 insertions, 26 deletions
diff --git a/src/backends/clang.rs b/src/backends/clang.rs index cf42c41..3da7379 100644 --- a/src/backends/clang.rs +++ b/src/backends/clang.rs @@ -1,9 +1,8 @@ -use crate::backends::{mk_tmp_dir, Backend, RunError}; +use super::get_binary_by_filename; +use crate::backends::{Backend, RunError}; use crate::serde_duration::deserialize_duration; use crate::wait::{wait_child, ChildExitStatus}; use serde_derive::Deserialize; -use std::collections::hash_map::DefaultHasher; -use std::hash::{Hash, Hasher}; use std::io::{Error, ErrorKind, Result as IoResult}; use std::path::{Path, PathBuf}; use std::process::Command; @@ -31,16 +30,6 @@ fn default_timeout() -> Duration { Duration::from_secs(1) } -fn get_binary_by_filename(fname: &Path) -> IoResult<PathBuf> { - let hashed_fname = { - let mut hasher = DefaultHasher::new(); - fname.hash(&mut hasher); - format!("{:x}", hasher.finish()) - }; - - Ok(mk_tmp_dir()?.join(hashed_fname)) -} - impl ClangBackend { fn build(&self, fname: &Path) -> IoResult<PathBuf> { let binary_fname = get_binary_by_filename(fname)?; diff --git a/src/backends/clang_c.rs b/src/backends/clang_c.rs index 7ee5161..a16a38c 100644 --- a/src/backends/clang_c.rs +++ b/src/backends/clang_c.rs @@ -1,9 +1,8 @@ -use crate::backends::{mk_tmp_dir, Backend, RunError}; +use super::get_binary_by_filename; +use crate::backends::{Backend, RunError}; use crate::serde_duration::deserialize_duration; use crate::wait::{wait_child, ChildExitStatus}; use serde_derive::Deserialize; -use std::collections::hash_map::DefaultHasher; -use std::hash::{Hash, Hasher}; use std::io::{Error, ErrorKind, Result as IoResult}; use std::path::{Path, PathBuf}; use std::process::Command; @@ -31,16 +30,6 @@ fn default_timeout() -> Duration { Duration::from_secs(1) } -fn get_binary_by_filename(fname: &Path) -> IoResult<PathBuf> { - let hashed_fname = { - let mut hasher = DefaultHasher::new(); - fname.hash(&mut hasher); - format!("{:x}", hasher.finish()) - }; - - Ok(mk_tmp_dir()?.join(hashed_fname)) -} - impl ClangCBackend { fn build(&self, fname: &Path) -> IoResult<PathBuf> { let binary_fname = get_binary_by_filename(fname)?; diff --git a/src/backends/mod.rs b/src/backends/mod.rs index 6d402af..be6e5e6 100644 --- a/src/backends/mod.rs +++ b/src/backends/mod.rs @@ -1,6 +1,8 @@ use crate::wait::ChildExitStatus; use lazy_static::lazy_static; +use std::collections::hash_map::DefaultHasher; use std::env::temp_dir; +use std::hash::{Hash, Hasher}; use std::io::{Error, ErrorKind}; use std::path::{Path, PathBuf}; @@ -38,3 +40,13 @@ fn mk_tmp_dir() -> std::io::Result<&'static std::path::PathBuf> { } Ok(&*EVR_TMP_DIR) } + +pub fn get_binary_by_filename(fname: &Path) -> std::io::Result<PathBuf> { + let hashed_fname = { + let mut hasher = DefaultHasher::new(); + fname.hash(&mut hasher); + format!("{:x}", hasher.finish()) + }; + + Ok(mk_tmp_dir()?.join(hashed_fname)) +} |