1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, Error>;
5pub type SignResult<T> = std::result::Result<T, SignerError>;
7pub type TokenReaderResult<T> = std::result::Result<T, TokenReaderError>;
9
10#[derive(Error, Debug)]
12pub enum Error {
13 #[error("token acquisition failed : {0}")]
15 TokenReader(#[from] TokenReaderError),
16 #[error("OAuth sign failed : {0}")]
18 Signer(#[from] SignerError),
19 #[error("request failed : {0}")]
21 Reqwest(#[from] reqwest::Error),
22}
23
24#[derive(Error, Debug, Clone)]
26pub enum SignerError {
27 #[error("unknown oauth parameter : {0}")]
29 UnknownParameter(String),
30 #[error("specified parameter {0} could not be configured via the reqwest parameters.")]
32 UnconfigurableParameter(String),
33 #[error("invalid oauth_timestamp, must be u64, but {0} is not compatible.")]
35 InvalidTimestamp(String),
36 #[error("invalid oauth_version, must be 1.0 or just empty, but specified {0}.")]
38 InvalidVersion(String),
39}
40
41#[derive(Error, Debug, Clone)]
43pub enum TokenReaderError {
44 #[error("the response has malformed format: key {0} is not found in response {1}")]
46 TokenKeyNotFound(&'static str, String),
47}