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

ConstraintViolationError

An error which is returned because of a database constraint violation.

InternalError

An error which is returned for reasons internal to the function.

InvalidArgumentError

An error returned when an argument passed to a function does not conform to the expected format.

InvalidStateError

An error returned when an operation cannot be completed because the state of the underlying struct is inconsistent.

ResourceTemporarilyUnavailableError

An error which is returned when an underlying resource is unavailable.

Enums

ConstraintViolationType

The type of constraint violation that caused the error