srdf/srdf_sparql/
srdf_sparql_error.rs1use iri_s::IriSError;
2use oxiri::IriParseError;
3use oxrdf::Term;
4use 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}