Skip to main content

apigate_core/error/
build.rs

1use http::header::InvalidHeaderValue;
2use http::uri::InvalidUri;
3use thiserror::Error;
4
5#[derive(Debug, Error)]
6pub enum BaseUriParseError {
7    #[error("invalid uri `{input}`: {source}")]
8    InvalidUri {
9        input: String,
10        #[source]
11        source: InvalidUri,
12    },
13    #[error("uri `{input}` missing scheme (expected http://...)")]
14    MissingScheme { input: String },
15    #[error("uri `{input}` missing authority (expected http://host:port)")]
16    MissingAuthority { input: String },
17    #[error("invalid authority for Host header `{authority}`: {source}")]
18    InvalidHostHeader {
19        authority: String,
20        #[source]
21        source: InvalidHeaderValue,
22    },
23}
24
25#[derive(Debug, Error)]
26pub enum ApigateBuildError {
27    #[error("backend `{service}` has invalid uri `{url}`: {source}")]
28    InvalidBackendUri {
29        service: String,
30        url: String,
31        #[source]
32        source: BaseUriParseError,
33    },
34    #[error("backend for service `{service}` is not registered")]
35    BackendNotRegistered { service: &'static str },
36    #[error("policy `{name}` is not registered")]
37    PolicyNotRegistered { name: &'static str },
38}