Now that entities are stored in the settings struct, these variables are massive which makes them balloon trace sizes while being mostly unreadable. This removes Debug from them to serve as a static-analysis check that context is ALWAYS ignored in tracing calls.
28 lines
841 B
Rust
28 lines
841 B
Rust
use std::path::PathBuf;
|
|
|
|
#[cfg(any(feature = "compare", feature = "foreign_document_test"))]
|
|
pub trait FileAccessInterface: Sync {
|
|
fn read_file(&self, path: &str) -> Result<String, std::io::Error>;
|
|
}
|
|
|
|
#[cfg(not(any(feature = "compare", feature = "foreign_document_test")))]
|
|
pub trait FileAccessInterface {
|
|
fn read_file(&self, path: &str) -> Result<String, std::io::Error>;
|
|
}
|
|
|
|
#[derive(Clone)]
|
|
pub struct LocalFileAccessInterface {
|
|
pub working_directory: Option<PathBuf>,
|
|
}
|
|
|
|
impl FileAccessInterface for LocalFileAccessInterface {
|
|
fn read_file(&self, path: &str) -> Result<String, std::io::Error> {
|
|
let final_path = self
|
|
.working_directory
|
|
.as_deref()
|
|
.map(|pb| pb.join(path))
|
|
.unwrap_or_else(|| PathBuf::from(path));
|
|
std::fs::read_to_string(final_path)
|
|
}
|
|
}
|