s3_ext/
error.rs

1use rusoto_core::{request::TlsError, HttpDispatchError, RusotoError};
2use rusoto_s3::{
3    CompleteMultipartUploadError, CreateBucketError, CreateMultipartUploadError, GetObjectError,
4    ListObjectsV2Error, PutObjectError, UploadPartError,
5};
6use std::io::Error as IoError;
7use thiserror::Error;
8
9pub type S3ExtResult<T> = Result<T, S3ExtError>;
10
11/// Errors returned by `S3Ext`
12#[derive(Debug, Error)]
13pub enum S3ExtError {
14    /// Unknown error
15    #[error("Unknown error {0}")]
16    Other(&'static str),
17
18    /// I/O Error
19    #[error("I/O Error {0}")]
20    IoError(#[from] IoError),
21
22    /// Rusoto CompleteMultipartUploadError
23    #[error("Rusoto CompleteMultipartUploadError {0}")]
24    CompleteMultipartUploadError(#[from] RusotoError<CompleteMultipartUploadError>),
25
26    /// Rusoto CreateMultipartUploadError
27    #[error("Rusoto CreateMultipartUploadError {0}")]
28    CreateMultipartUploadError(#[from] RusotoError<CreateMultipartUploadError>),
29
30    /// Rusoto GetObjectError
31    #[error("Rusoto GetObjectError {0}")]
32    GetObjectError(#[from] RusotoError<GetObjectError>),
33
34    /// Rusoto HttpDispatchError
35    #[error("Rusoto HttpDispatchError {0}")]
36    HttpDispatchError(#[from] RusotoError<HttpDispatchError>),
37
38    /// Rusoto ListObjectV2Error
39    #[error("Rusoto ListObjectV2Error {0}")]
40    ListObjectV2Error(#[from] RusotoError<ListObjectsV2Error>),
41
42    /// Rusoto PutObjectError
43    #[error("Rusoto PutObjectError {0}")]
44    PutObjectError(#[from] RusotoError<PutObjectError>),
45
46    /// Rusoto UploadPartError
47    #[error("Rusoto UploadPartError {0}")]
48    UploadPartError(#[from] RusotoError<UploadPartError>),
49
50    /// Rusoto CreateBucketError
51    #[error("Rusoto CreateBucketError {0}")]
52    CreateBucketError(#[from] RusotoError<CreateBucketError>),
53
54    /// Rusoto request TlsError
55    #[error("Rusoto TlsError {0}")]
56    TlsError(#[from] TlsError),
57}