Moved directory errors to a submodule

This commit is contained in:
Paul Masurel
2016-08-19 11:18:18 +09:00
parent 7b5e457e1e
commit f1d2f6b34a
6 changed files with 44 additions and 46 deletions

View File

@@ -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;

32
src/directory/error.rs Normal file
View File

@@ -0,0 +1,32 @@
use std::path::PathBuf;
use std::io;
#[derive(Debug)]
pub enum OpenWriteError {
FileAlreadyExists(PathBuf),
IOError(io::Error),
}
impl From<io::Error> for OpenWriteError {
fn from(err: io::Error) -> OpenWriteError {
OpenWriteError::IOError(err)
}
}
#[derive(Debug)]
pub enum FileError {
FileDoesNotExist(PathBuf),
IOError(io::Error),
}
impl From<io::Error> for FileError {
fn from(err: io::Error) -> FileError {
FileError::IOError(err)
}
}
#[derive(Debug)]
pub enum OpenDirectoryError {
DoesNotExist,
NotADirectory,
}

View File

@@ -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;

View File

@@ -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<io::Error> for OpenWriteError {
fn from(err: io::Error) -> OpenWriteError {
OpenWriteError::IOError(err)
}
}
#[derive(Debug)]
pub enum FileError {
FileDoesNotExist(PathBuf),
IOError(io::Error),
}
impl From<io::Error> for FileError {
fn from(err: io::Error) -> FileError {
FileError::IOError(err)
}
}
#[derive(Debug)]
pub enum OpenDirectoryError {
DoesNotExist,
NotADirectory,
}
pub trait SeekableWrite: Seek + Write {}
impl<T: Seek + Write> SeekableWrite for T {}
@@ -54,7 +21,6 @@ impl<T: Seek + Write> SeekableWrite for T {}
/// and Seek.
pub type WritePtr = Box<SeekableWrite>;
#[cfg(test)]
mod tests {

View File

@@ -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)
})

View File

@@ -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 {