ftf 0.4.0

Run functional tests from a variety of formats
Documentation
use std::convert::From;

#[derive(Debug, thiserror::Error)]
pub enum Error {
    #[error("{0}")]
    Io(std::io::Error),
    #[error("unhandled file format: {0}")]
    UnhandledFileFormat(String),
    #[error("invalid file name: no extension")]
    NoExtension,
    #[error("couldn't (de)serialize YAML data: {0}")]
    SerdeYaml(serde_yaml::Error),
    #[error("error when creating thread pool: {0}")]
    ThreadPool(rayon::ThreadPoolBuildError),
}

impl From<serde_yaml::Error> for Error {
    fn from(e: serde_yaml::Error) -> Error {
        Error::SerdeYaml(e)
    }
}

impl From<std::io::Error> for Error {
    fn from(e: std::io::Error) -> Error {
        Error::Io(e)
    }
}

impl From<rayon::ThreadPoolBuildError> for Error {
    fn from(e: rayon::ThreadPoolBuildError) -> Error {
        Error::ThreadPool(e)
    }
}