#![feature(decl_macro)]
#![warn(missing_docs)]
#![warn(rust_2018_idioms)]
#![warn(rust_2021_compatibility)]
#![warn(missing_debug_implementations)]
#![warn(clippy::missing_docs_in_private_items)]
#![warn(rustdoc::broken_intra_doc_links)]
pub mod v1;
#[derive(Debug)]
pub enum Error {
Lint(Box<dyn std::error::Error>),
ParseV1(Box<v1::Error>),
Validation(Box<wdl_core::concern::validation::Failure>),
}
impl std::fmt::Display for Error {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Error::Lint(err) => {
write!(f, "lint error: {err}")
}
Error::ParseV1(err) => write!(f, "parse error:\n\n{err}"),
Error::Validation(err) => write!(f, "validation error: {err}"),
}
}
}
impl std::error::Error for Error {}
pub type Result<T> = std::result::Result<T, Error>;