1use std::io;
2use thiserror::Error;
3
4#[derive(Error, Debug)]
5pub enum LinkedinError {
6 #[error("Authentication failed: {0}")]
7 AuthFailed(String),
8
9 #[error("Challenge encountered: {0}")]
10 Challenge(String),
11
12 #[error("Unauthorized: {0}")]
13 Unauthorized(String),
14
15 #[error("Request failed: {0}")]
16 RequestFailed(String),
17
18 #[error("Request failed: {0}")]
19 InvalidURN(String),
20
21 #[error("Rate limit exceeded")]
22 RateLimit,
23
24 #[error("Invalid input: {0}")]
25 InvalidInput(String),
26
27 #[error("IO error: {0}")]
28 Io(#[from] io::Error),
29
30 #[error("JSON error: {0}")]
31 Json(#[from] serde_json::Error),
32
33 #[error("HTTP error: {0}")]
34 Http(#[from] reqwest::Error),
35
36 #[error("URL parse error: {0}")]
37 Url(#[from] url::ParseError),
38
39 #[error("Header value error: {0}")]
40 Header(#[from] reqwest::header::InvalidHeaderValue),
41
42 #[error("Header to string error: {0}")]
43 HeaderToStr(#[from] reqwest::header::ToStrError),
44}