Squashed commit of the following:

commit 0f48f3fb44
Author: quexeky <git@quexeky.dev>
Date:   Sun Oct 12 19:35:04 2025 +1100

    chore: Run cargo clippy && cargo fmt

    Signed-off-by: quexeky <git@quexeky.dev>

commit 974666efe2
Author: quexeky <git@quexeky.dev>
Date:   Sun Oct 12 19:17:40 2025 +1100

    refactor: Finish refactor

    Signed-off-by: quexeky <git@quexeky.dev>

commit 9e1bf9852f
Author: quexeky <git@quexeky.dev>
Date:   Sun Oct 12 18:33:43 2025 +1100

    refactor: Builds, but some logic still left to move back

    Signed-off-by: quexeky <git@quexeky.dev>

commit 5d22b883d5
Author: quexeky <git@quexeky.dev>
Date:   Sun Oct 12 17:04:27 2025 +1100

    refactor: Improvements to src-tauri

    Signed-off-by: quexeky <git@quexeky.dev>

commit 62a2561539
Author: quexeky <git@quexeky.dev>
Date:   Sat Oct 11 09:51:04 2025 +1100

    fix: Remote tauri dependency from process

    Signed-off-by: quexeky <git@quexeky.dev>

commit 59f040bc8b
Author: quexeky <git@quexeky.dev>
Date:   Thu Oct 9 07:46:17 2025 +1100

    chore: Major refactoring

    Still needs a massive go-over because there shouldn't be anything referencing tauri in any of the workspaces except the original one. Process manager has been refactored as an example

    Signed-off-by: quexeky <git@quexeky.dev>

Signed-off-by: quexeky <git@quexeky.dev>
This commit is contained in:
quexeky
2025-10-13 08:03:49 +11:00
parent cc57ca7076
commit 2859a59622
109 changed files with 15658 additions and 1956 deletions

View File

@ -0,0 +1,31 @@
use std::sync::Arc;
use database::DownloadableMetadata;
use tauri::AppHandle;
use crate::error::ApplicationDownloadError;
use super::{
download_manager_frontend::DownloadStatus,
util::{download_thread_control_flag::DownloadThreadControl, progress_object::ProgressObject},
};
/**
* Downloadables are responsible for managing their specific object's download state
* e.g, the GameDownloadAgent is responsible for pushing game updates
*
* But the download manager manages the queue state
*/
pub trait Downloadable: Send + Sync {
fn download(&self, app_handle: &AppHandle) -> Result<bool, ApplicationDownloadError>;
fn validate(&self, app_handle: &AppHandle) -> Result<bool, ApplicationDownloadError>;
fn progress(&self) -> Arc<ProgressObject>;
fn control_flag(&self) -> DownloadThreadControl;
fn status(&self) -> DownloadStatus;
fn metadata(&self) -> DownloadableMetadata;
fn on_queued(&self, app_handle: &AppHandle);
fn on_error(&self, app_handle: &AppHandle, error: &ApplicationDownloadError);
fn on_complete(&self, app_handle: &AppHandle);
fn on_cancelled(&self, app_handle: &AppHandle);
}