#[derive(Debug)]
pub enum UploadResult {
RecoverableFailure {
#[doc(hidden)]
unused: i8,
},
UnrecoverableFailure {
#[doc(hidden)]
unused: i8,
},
HttpStatus {
code: i32,
},
}
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"),
}
}
pub fn recoverable_failure() -> Self {
Self::RecoverableFailure { unused: 0 }
}
pub fn unrecoverable_failure() -> Self {
Self::UnrecoverableFailure { unused: 0 }
}
pub fn http_status(code: i32) -> Self {
Self::HttpStatus { code }
}
}