mirror of
https://github.com/Drop-OSS/drop.git
synced 2026-07-13 06:14:42 +10:00
11395dbab1
* fix: Add lint and remove all unwraps from lib.rs Signed-off-by: quexeky <git@quexeky.dev> * chore: Remove all unwraps from util.rs and add state_lock macro Signed-off-by: quexeky <git@quexeky.dev> * chore: Add CacheError and remove unwraps from fetch_object Signed-off-by: quexeky <git@quexeky.dev> * chore: Remove unwraps from fetch_object and server_proto Signed-off-by: quexeky <git@quexeky.dev> * chore: Remove unwraps from auth.rs Signed-off-by: quexeky <git@quexeky.dev> * chore: Remove unwraps from process_handlers Signed-off-by: quexeky <git@quexeky.dev> * chore: Clippy unwrap linting Signed-off-by: quexeky <git@quexeky.dev> * chore: Remove lint Because not everything is actually resolved yet: will be resolved with a restructure of the library Signed-off-by: quexeky <git@quexeky.dev> * chore: Make the rest of clippy happy Signed-off-by: quexeky <git@quexeky.dev> * fix: Send download signal instead of triggering self.on_error Signed-off-by: quexeky <git@quexeky.dev> * fix: Corrupted state should panic Signed-off-by: quexeky <git@quexeky.dev> * fix: Use debug instead of display for specific errors Signed-off-by: quexeky <git@quexeky.dev> * fix: Settings now log error instead of panicking Signed-off-by: quexeky <git@quexeky.dev> --------- Signed-off-by: quexeky <git@quexeky.dev>
55 lines
1.8 KiB
Rust
55 lines
1.8 KiB
Rust
use std::{
|
|
fmt::{Display, Formatter},
|
|
io, sync::Arc,
|
|
};
|
|
|
|
use serde_with::SerializeDisplay;
|
|
use humansize::{format_size, BINARY};
|
|
|
|
use super::remote_access_error::RemoteAccessError;
|
|
|
|
// TODO: Rename / separate from downloads
|
|
#[derive(Debug, SerializeDisplay)]
|
|
pub enum ApplicationDownloadError {
|
|
NotInitialized,
|
|
Communication(RemoteAccessError),
|
|
DiskFull(u64, u64),
|
|
#[allow(dead_code)]
|
|
Checksum,
|
|
Lock,
|
|
IoError(Arc<io::Error>),
|
|
DownloadError(RemoteAccessError),
|
|
}
|
|
|
|
impl Display for ApplicationDownloadError {
|
|
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
|
|
match self {
|
|
ApplicationDownloadError::NotInitialized => write!(f, "Download not initalized, did something go wrong?"),
|
|
ApplicationDownloadError::DiskFull(required, available) => write!(
|
|
f,
|
|
"Game requires {}, {} remaining left on disk.",
|
|
format_size(*required, BINARY),
|
|
format_size(*available, BINARY),
|
|
),
|
|
ApplicationDownloadError::Communication(error) => write!(f, "{error}"),
|
|
ApplicationDownloadError::Lock => write!(
|
|
f,
|
|
"failed to acquire lock. Something has gone very wrong internally. Please restart the application"
|
|
),
|
|
ApplicationDownloadError::Checksum => {
|
|
write!(f, "checksum failed to validate for download")
|
|
}
|
|
ApplicationDownloadError::IoError(error) => write!(f, "io error: {error}"),
|
|
ApplicationDownloadError::DownloadError(error) => write!(
|
|
f,
|
|
"Download failed with error {error:?}"
|
|
),
|
|
}
|
|
}
|
|
}
|
|
|
|
impl From<io::Error> for ApplicationDownloadError {
|
|
fn from(value: io::Error) -> Self {
|
|
ApplicationDownloadError::IoError(Arc::new(value))
|
|
}
|
|
} |