backblaze_b2_client/tasks/upload/
error.rs1use core::fmt;
2use std::error::Error;
3
4use crate::{error::B2Error, util::InvalidValue};
5
6#[derive(Debug)]
7pub enum FileUploadError {
8 Aborted,
9 AlreadyStarted,
10 FailedToReadFile(std::io::Error),
11 RequestError(B2Error),
12 InvalidOptions(InvalidValue),
13}
14
15impl Error for FileUploadError {}
16
17impl fmt::Display for FileUploadError {
18 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
19 write!(f, "B2 upload failed, ")?;
20
21 match self {
22 Self::Aborted => write!(f, "Request was aborted."),
23 Self::AlreadyStarted => write!(f, "Already started file upload."),
24 Self::FailedToReadFile(err) => write!(f, "Failed to read file to upload: {}", err),
25 Self::RequestError(err) => write!(f, "{}", err),
26 Self::InvalidOptions(err) => write!(f, "{}", err),
27 }
28 }
29}
30
31impl From<B2Error> for FileUploadError {
32 fn from(value: B2Error) -> Self {
33 FileUploadError::RequestError(value)
34 }
35}
36
37impl From<InvalidValue> for FileUploadError {
38 fn from(value: InvalidValue) -> Self {
39 FileUploadError::InvalidOptions(value)
40 }
41}
42
43impl From<std::io::Error> for FileUploadError {
44 fn from(value: std::io::Error) -> Self {
45 FileUploadError::FailedToReadFile(value)
46 }
47}