[−][src]Module grid_sdk::error
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 grid_sdk::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 grid_sdk::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
ConstraintViolationError | An error which is returned because of a database constraint violation. |
InternalError | An error which is returned for reasons internal to the function. |
ResourceTemporarilyUnavailableError | An error which is returned when an underlying resource is unavailable. |
Enums
ConstraintViolationType | The type of constraint violation that caused the error |