curl_parser/
error.rs

1use crate::parser::Rule;
2use http::Method;
3use snafu::Snafu;
4
5pub(crate) type Result<T, E = Error> = std::result::Result<T, E>;
6
7#[derive(Debug, Snafu)]
8#[snafu(visibility(pub(crate)))]
9pub enum Error {
10    #[snafu(display("Failed to parse input string with pest rules"))]
11    ParseRule {
12        #[snafu(source(from(pest::error::Error<Rule>, Box::new)))]
13        source: Box<pest::error::Error<Rule>>,
14    },
15    #[snafu(display("Expect a {label}. But value is {value}"))]
16    ExpectValue { label: &'static str, value: String },
17    #[snafu(display("Failed to parse HTTP method"))]
18    ParseMethod { source: http::method::InvalidMethod },
19    #[snafu(display("Unsupported HTTP method: {method}"))]
20    UnsupportedMethod { method: Method },
21    #[snafu(display("URL is required for http call"))]
22    RequiredUrl,
23    #[snafu(display("Value is required"))]
24    RequiredValue,
25    #[snafu(display("Unsupported type: {value}"))]
26    UnsupportedType { value: String },
27    #[snafu(display("Unsupported attr {name}: {value}"))]
28    UnsupportedAttr { name: String, value: String },
29
30    #[snafu(display("Failed to parse URL"))]
31    ParseUrl { source: http::uri::InvalidUri },
32    #[snafu(display("Failed to parse header name"))]
33    ParseHeaderName {
34        source: http::header::InvalidHeaderName,
35    },
36    #[snafu(display("Failed to parse header value"))]
37    ParseHeaderValue {
38        source: http::header::InvalidHeaderValue,
39    },
40
41    #[snafu(display("Failed to render request template"))]
42    Render { source: minijinja::Error },
43}