use thiserror::Error;
#[derive(Error, Debug)]
pub enum DataError {
#[error("Error applying RDF data configuration: {error}")]
RdfDataConfig { error: String },
#[error("Non-RDF format: {format}")]
NonRdfFormat { format: String },
#[error("Non-image visualization format: {format}")]
NonImageVisualizationFormat { format: String },
#[error(
"Unsupported data format: '{format}'. Valid formats are: 'turtle', 'ntriples', 'rdfxml', 'trig', 'n3', 'nquads', 'jsonld', 'pg'"
)]
UnsupportedDataFormat { format: String },
#[error("Unsupported reader mode: '{mode}'. Valid modes are 'strict' or 'lax'")]
UnsupportedReaderMode { mode: String },
#[error("Data source specification error: {message}")]
DataSourceSpec { message: String },
#[error(
"Unsupported result data format: '{format}'. Valid formats are: 'turtle', 'ntriples', 'rdfxml', 'trig', 'n3', 'nquads', 'compact', 'json', 'plantuml', 'svg', 'png'"
)]
UnsupportedResultDataFormat { format: String },
#[error("Invalid endpoint '{endpoint}': {error}")]
InvalidEndpoint { endpoint: String, error: String },
#[error(
"Failed to parse RDF data from '{source_name}' with format '{format}', base '{base}', reader mode '{reader_mode}': {error}"
)]
FailedParsingRdfData {
source_name: String,
format: String,
base: String,
reader_mode: String,
error: String,
},
#[error("Failed to parse PG data from '{source_name}': {error}")]
FailedParsingPgData { source_name: String, error: String },
#[error(
"Failed to parse Service Description data from '{source_name}' with format '{format}', base '{base}', reader mode '{reader_mode}': {error}"
)]
FailedParsingServiceDescriptionData {
source_name: String,
format: String,
base: String,
reader_mode: String,
error: String,
},
#[error("Failed to serialize Service Description with format '{result_service_format}': {error}")]
FailedSerializingServiceDescription {
result_service_format: String,
error: String,
},
#[error("Failed to serialize Rdf Data with format '{result_data_format}': {error}")]
FailedSerializingRdfData { result_data_format: String, error: String },
#[error("Failed to serialize Property Graph Data with format '{result_pg_format}': {error}")]
FailedSerializingPgData { result_pg_format: String, error: String },
#[error("No Service Description loaded")]
NoServiceDescription,
#[error("No RDF data loaded")]
NoRdfDataLoaded,
#[error("No PG data loaded")]
NoPgDataLoaded,
#[error("No data loaded")]
NoDataLoaded,
#[error("Failed to serialize data to {format}: {error}")]
FailedSerializingData { format: String, error: String },
#[error("Failed parsing node selector '{node}': {error}")]
FailedNodeSelectorParse { node: String, error: String },
#[error("Failed parsing Iri ref '{iri}': {error}")]
FailedIriRefParse { iri: String, error: String },
#[error("Failed resolving prefix '{prefix}': {error}")]
FailedPrefixResolution { prefix: String, error: String },
#[error("Failed retrieving arcs for node: {error}")]
FailedArcRetrieval { error: String },
#[error("Failed qualifying node or term: {error}")]
FailedQualification { error: String },
#[error("Failed I/O operation while writing node info: {error}")]
FailedIoOperation { error: String },
}