#[derive(Debug)]
pub enum UploadResult {
RecoverableFailure {
#[doc(hidden)]
unused: i8,
},
UnrecoverableFailure {
#[doc(hidden)]
unused: i8,
},
Incapable {
#[doc(hidden)]
unused: i8,
},
HttpStatus {
code: i32,
},
Done {
#[doc(hidden)]
unused: i8,
},
}
impl UploadResult {
pub fn get_label(&self) -> Option<&str> {
match self {
UploadResult::HttpStatus { code: 200..=299 } => None,
UploadResult::HttpStatus { code: 400..=499 } => Some("status_code_4xx"),
UploadResult::HttpStatus { code: 500..=599 } => Some("status_code_5xx"),
UploadResult::HttpStatus { .. } => Some("status_code_unknown"),
UploadResult::UnrecoverableFailure { .. } => Some("unrecoverable"),
UploadResult::RecoverableFailure { .. } => Some("recoverable"),
UploadResult::Incapable { .. } => Some("incapable"),
UploadResult::Done { .. } => None,
}
}
pub fn recoverable_failure() -> Self {
Self::RecoverableFailure { unused: 0 }
}
pub fn unrecoverable_failure() -> Self {
Self::UnrecoverableFailure { unused: 0 }
}
pub fn incapable() -> Self {
Self::Incapable { unused: 0 }
}
pub fn http_status(code: i32) -> Self {
Self::HttpStatus { code }
}
pub fn done() -> Self {
Self::Done { unused: 0 }
}
}
#[derive(Debug)]
pub enum UploadTaskAction {
Next,
End,
}