diff --git a/src/directory/directory.rs b/src/directory/directory.rs index a3e9e0dfe..6607d4872 100644 --- a/src/directory/directory.rs +++ b/src/directory/directory.rs @@ -2,7 +2,7 @@ use std::marker::Send; use std::marker::Sync; use std::fmt; use std::path::Path; -use directory::{FileError, OpenWriteError}; +use directory::error::{FileError, OpenWriteError}; use directory::{ReadOnlySource, WritePtr}; use std::result; use std::io; diff --git a/src/directory/error.rs b/src/directory/error.rs new file mode 100644 index 000000000..0acd38cc1 --- /dev/null +++ b/src/directory/error.rs @@ -0,0 +1,32 @@ +use std::path::PathBuf; +use std::io; + +#[derive(Debug)] +pub enum OpenWriteError { + FileAlreadyExists(PathBuf), + IOError(io::Error), +} + +impl From for OpenWriteError { + fn from(err: io::Error) -> OpenWriteError { + OpenWriteError::IOError(err) + } +} + +#[derive(Debug)] +pub enum FileError { + FileDoesNotExist(PathBuf), + IOError(io::Error), +} + +impl From for FileError { + fn from(err: io::Error) -> FileError { + FileError::IOError(err) + } +} + +#[derive(Debug)] +pub enum OpenDirectoryError { + DoesNotExist, + NotADirectory, +} \ No newline at end of file diff --git a/src/directory/mmap_directory.rs b/src/directory/mmap_directory.rs index 551b82eb5..05927a813 100644 --- a/src/directory/mmap_directory.rs +++ b/src/directory/mmap_directory.rs @@ -15,7 +15,7 @@ use directory::ReadOnlySource; use directory::WritePtr; use std::io::BufWriter; use std::fs::OpenOptions; -use directory::{OpenWriteError, FileError, OpenDirectoryError}; +use directory::error::{OpenWriteError, FileError, OpenDirectoryError}; use std::result; use common::make_io_err; diff --git a/src/directory/mod.rs b/src/directory/mod.rs index 5d698e9ce..b0b0ce99b 100644 --- a/src/directory/mod.rs +++ b/src/directory/mod.rs @@ -3,48 +3,15 @@ mod ram_directory; mod directory; mod read_only_source; mod shared_vec_slice; +pub mod error; use std::io::{Seek, Write}; -use std::io; - -use std::path::PathBuf; pub use self::read_only_source::ReadOnlySource; pub use self::directory::Directory; pub use self::ram_directory::RAMDirectory; pub use self::mmap_directory::MmapDirectory; -#[derive(Debug)] -pub enum OpenWriteError { - FileAlreadyExists(PathBuf), - IOError(io::Error), -} - -impl From for OpenWriteError { - fn from(err: io::Error) -> OpenWriteError { - OpenWriteError::IOError(err) - } -} - -#[derive(Debug)] -pub enum FileError { - FileDoesNotExist(PathBuf), - IOError(io::Error), -} - -impl From for FileError { - fn from(err: io::Error) -> FileError { - FileError::IOError(err) - } -} - -#[derive(Debug)] -pub enum OpenDirectoryError { - DoesNotExist, - NotADirectory, -} - - pub trait SeekableWrite: Seek + Write {} impl SeekableWrite for T {} @@ -54,7 +21,6 @@ impl SeekableWrite for T {} /// and Seek. pub type WritePtr = Box; - #[cfg(test)] mod tests { diff --git a/src/directory/ram_directory.rs b/src/directory/ram_directory.rs index b09de430c..672414389 100644 --- a/src/directory/ram_directory.rs +++ b/src/directory/ram_directory.rs @@ -1,14 +1,14 @@ -use directory::{Directory, ReadOnlySource}; -use std::io::{Cursor, Write, Seek, SeekFrom}; -use std::io; -use std::fmt; -use std::sync::{Arc, RwLock}; use std::collections::HashMap; +use std::fmt; +use std::io; +use std::io::{Cursor, Write, Seek, SeekFrom}; use std::path::{Path, PathBuf}; -use directory::{OpenWriteError, FileError}; -use directory::WritePtr; use std::result; +use std::sync::{Arc, RwLock}; use common::make_io_err; +use directory::{Directory, ReadOnlySource}; +use directory::error::{OpenWriteError, FileError}; +use directory::WritePtr; use super::shared_vec_slice::SharedVecSlice; /// Writer associated to the `RAMDirectory` @@ -108,7 +108,7 @@ impl InnerDirectory { fn delete(&self, path: &Path) -> result::Result<(), FileError> { self.0 .write() - .map_err(|err| { + .map_err(|_| { let io_err = make_io_err(format!("Failed to acquire write lock for the directory, when trying to delete {:?}", path)); FileError::IOError(io_err) }) diff --git a/src/error.rs b/src/error.rs index 50d6fb4ae..55c18a563 100644 --- a/src/error.rs +++ b/src/error.rs @@ -3,7 +3,7 @@ use std::result; use std::path::PathBuf; use std::error; use std::sync::PoisonError; -use directory::{FileError, OpenWriteError, OpenDirectoryError}; +use directory::error::{FileError, OpenWriteError, OpenDirectoryError}; #[derive(Debug)] pub enum Error {