use crate::error::unexpected; mod descr; pub use self::descr::Descr; pub mod store; #[derive(thiserror::Error, Debug)] pub enum ReadFileIntoError { #[error("file not found")] FileNotFound, #[error(transparent)] Unexpected(#[from] unexpected::Error), } #[mockall::automock] /// Describes an origin which has already been synced locally and is available for reading files /// from. pub trait Origin { fn descr(&self) -> &Descr; fn read_file_into( &self, path: &str, into: &mut dyn std::io::Write, ) -> Result<(), ReadFileIntoError>; }