Module splinter::error [−][src]
Expand description
Common set of basic errors used throughout the library.
The errors in this module are intended to be used by themselves or as part of a more complex
error enum
.
Examples
Returning an Error from a Function
A function may return an error such as InternalError
by itself.
use std::fs;
use splinter::error::InternalError;
fn check_path(path: &str) -> Result<bool, InternalError> {
let metadata = fs::metadata(path).map_err(|e| InternalError::from_source(Box::new(e)))?;
Ok(metadata.is_file())
}
Constructing Complex Errors
Errors such as InternalError
may be used to construct more complicated errors by defining
an enum
.
use std::error;
use std::fmt;
use std::fs;
use splinter::error::InternalError;
#[derive(Debug)]
enum MyError {
InternalError(InternalError),
MissingFilenameExtension,
}
impl error::Error for MyError {}
impl fmt::Display for MyError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
MyError::InternalError(e) => write!(f, "{}", e),
MyError::MissingFilenameExtension => write!(f, "Missing filename extension"),
}
}
}
fn check_path(path: &str) -> Result<bool, MyError> {
match !path.ends_with(".md") {
true => Err(MyError::MissingFilenameExtension),
false => {
let metadata = fs::metadata(path).map_err(|e| MyError::InternalError(InternalError::from_source(Box::new(e))))?;
Ok(metadata.is_file())
}
}
}
Structs
An error which is returned because of a database constraint violation.
An error which is returned for reasons internal to the function.
An error returned when an argument passed to a function does not conform to the expected format.
An error returned when an operation cannot be completed because the state of the underlying struct is inconsistent.
An error which is returned when an underlying resource is unavailable.
Enums
The type of constraint violation that caused the error