* 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>
33 lines
1.3 KiB
Rust
33 lines
1.3 KiB
Rust
use std::{fmt::Display, io::Error};
|
|
|
|
use serde_with::SerializeDisplay;
|
|
|
|
#[derive(SerializeDisplay)]
|
|
pub enum ProcessError {
|
|
NotInstalled,
|
|
AlreadyRunning,
|
|
InvalidID,
|
|
InvalidVersion,
|
|
IOError(Error),
|
|
FormatError(String), // String errors supremacy
|
|
InvalidPlatform,
|
|
OpenerError(tauri_plugin_opener::Error),
|
|
InvalidArguments(String)
|
|
}
|
|
|
|
impl Display for ProcessError {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
let s = match self {
|
|
ProcessError::NotInstalled => "Game not installed",
|
|
ProcessError::AlreadyRunning => "Game already running",
|
|
ProcessError::InvalidID => "Invalid game ID",
|
|
ProcessError::InvalidVersion => "Invalid game version",
|
|
ProcessError::IOError(error) => &error.to_string(),
|
|
ProcessError::InvalidPlatform => "This game cannot be played on the current platform",
|
|
ProcessError::FormatError(error) => &format!("Could not format template: {error:?}"),
|
|
ProcessError::OpenerError(error) => &format!("Could not open directory: {error:?}"),
|
|
ProcessError::InvalidArguments(arguments) => &format!("Invalid arguments in command {arguments}"),
|
|
};
|
|
write!(f, "{s}")
|
|
}
|
|
}
|