1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, Error>;
4
5#[derive(Debug, Error)]
6#[non_exhaustive]
7pub enum Error {
8    #[error("Invalid Api Key")]
9    ApiKeyError,
10
11    #[error("DJI Api error: {0}")]
12    ApiError(String),
13
14    #[error("Keychain is required")]
15    KeychainRequired,
16
17    #[error("Missing Auxilliary data: {0}")]
18    MissingAuxilliaryData(String),
19
20    #[error("Parse error: {0}")]
21    Parse(#[from] binrw::Error),
22
23    #[error("Serialization error: {0}")]
24    Serialization(#[from] serde_json::Error),
25
26    #[error("Io error: {0}")]
27    Io(#[from] std::io::Error),
28
29    #[error("Base64 decode error: {0}")]
30    Base64Decode(#[from] base64::DecodeError),
31
32    #[error("Request request status error: {0}")]
33    NetworkRequestStatus(u16),
34
35    #[error("Network connection error")]
36    NetworkConnection,
37}