use crate::errors::*;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum RudofError {
#[error("Configuration error: {0}")]
Config(#[from] ConfigError),
#[error("Input specification error: {0}")]
InputSpec(#[from] InputSpecError),
#[error("ShapeMap error: {0}")]
ShapeMap(#[from] ShapeMapError),
#[error("ShEx error: {0}")]
ShEx(#[from] ShExError),
#[error("SHACL error: {0}")]
Shacl(#[from] ShaclError),
#[error("Property Graph schema error: {0}")]
PgSchema(#[from] PgSchemaError),
#[error("Validation error: {0}")]
Validation(#[from] ValidationError),
#[error("Data error: {0}")]
Data(#[from] Box<DataError>),
#[error("Node inspection error: {0}")]
NodeInspection(#[from] NodeInspectionError),
#[error("DC-TAP error: {0}")]
DCTap(#[from] DCTapError),
#[error("Conversion error: {0}")]
Conversion(#[from] ConversionError),
#[error("Schema comparison error: {0}")]
Comparison(#[from] ComparisonError),
#[error("RDF-config error: {0}")]
RdfConfig(#[from] RdfConfigError),
#[error("Service error: {0}")]
Service(#[from] ServiceError),
#[error("Query error: {0}")]
Query(#[from] QueryError),
#[error("Generate error: {0}")]
Generate(#[from] GenerationError),
#[error("IRI error: {0}")]
Iri(#[from] IriError),
#[error("MapState error: {0}")]
MapState(#[from] MapStateError),
#[error("Materialize error: {0}")]
Materialize(#[from] MaterializeError),
#[error("Not implemented: {msg}")]
NotImplemented { msg: String },
#[error("Error: {error}")]
Generic { error: String },
}