srdf/srdf_sparql/
srdf_sparql_error.rs

1use iri_s::IriSError;
2use oxiri::IriParseError;
3use oxrdf::Term;
4//use sparesults::QuerySolution;
5use thiserror::Error;
6
7use crate::SparqlVars;
8
9#[derive(Error, Debug)]
10pub enum SRDFSparqlError {
11    #[error("HTTP Request error: {e:?}")]
12    HTTPRequestError { e: reqwest::Error },
13
14    #[error("URL parser error: {e:?}")]
15    URLParseError { e: url::ParseError },
16
17    #[error("SPARQL Results parser: {e:?}")]
18    SPAResults {
19        e: sparesults::QueryResultsParseError,
20    },
21
22    #[error(transparent)]
23    IriParseError {
24        #[from]
25        err: IriParseError,
26    },
27
28    #[error("Unknown name for endpoint: {name}")]
29    UnknownEndpontName { name: String },
30
31    #[error("Error parsing body: {body}")]
32    ParsingBody { body: String },
33
34    #[error("SPARQL solutions error: Expected IRI, got {value}")]
35    SPARQLSolutionErrorNoIRI { value: Term },
36
37    #[error("SPARQL solutions error: Not found vars {vars} in solution {solution:?}")]
38    NotFoundVarsInSolution { vars: SparqlVars, solution: String },
39
40    #[error("SPARQL solutions error: Expected Subject, got {value}")]
41    SPARQLSolutionErrorNoSubject { value: Term },
42
43    #[error("SPARQL solutions error: Not found value for {value} in {solution:?}")]
44    NotFoundInSolution { value: String, solution: String },
45
46    #[error("Expected term {term} to be a subject")]
47    NoSubject { term: Term },
48
49    #[error(transparent)]
50    IriSError {
51        #[from]
52        err: IriSError,
53    },
54}
55
56impl From<reqwest::Error> for SRDFSparqlError {
57    fn from(e: reqwest::Error) -> SRDFSparqlError {
58        SRDFSparqlError::HTTPRequestError { e }
59    }
60}
61
62impl From<url::ParseError> for SRDFSparqlError {
63    fn from(e: url::ParseError) -> SRDFSparqlError {
64        SRDFSparqlError::URLParseError { e }
65    }
66}
67
68impl From<sparesults::QueryResultsParseError> for SRDFSparqlError {
69    fn from(e: sparesults::QueryResultsParseError) -> SRDFSparqlError {
70        SRDFSparqlError::SPAResults { e }
71    }
72}