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 errling::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 errling::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§
- Constraint
Violation Error - An error which is returned because of a database constraint violation.
- Internal
Error - An error which is returned for reasons internal to the function.
- Invalid
Argument Error - An error returned when an argument passed to a function does not conform to the expected format.
- Invalid
State Error - An error returned when an operation cannot be completed because the state of the underlying struct is inconsistent.
- Resource
Temporarily Unavailable Error - An error which is returned when an underlying resource is unavailable.
Enums§
- Constraint
Violation Type - The type of constraint violation that caused the error