aws_sdk_manager/
errors.rs

1use thiserror::Error;
2
3pub type Result<T> = std::result::Result<T, Error>;
4
5/// Backing errors for all AWS operations.
6#[derive(Error, Debug)]
7pub enum Error {
8    #[error("failed API")]
9    API { message: String, is_retryable: bool },
10    #[error("failed for other reasons")]
11    Other { message: String, is_retryable: bool },
12}
13
14impl Error {
15    /// Returns the error message in "String".
16    #[inline]
17    #[must_use]
18    pub fn message(&self) -> String {
19        match self {
20            Error::API { message, .. } | Error::Other { message, .. } => message.clone(),
21        }
22    }
23
24    /// Returns if the error is retryable.
25    #[inline]
26    #[must_use]
27    pub fn is_retryable(&self) -> bool {
28        match self {
29            Error::API { is_retryable, .. } | Error::Other { is_retryable, .. } => *is_retryable,
30        }
31    }
32}