Revert "refactor(download manager): Moved manifest and stored_manifest to download_manager"

This reverts commit 8db2393346.
This commit is contained in:
quexeky
2024-12-31 13:05:51 +11:00
parent a846eed306
commit 78149bbb3c
10 changed files with 37 additions and 46 deletions

View File

@ -0,0 +1,8 @@
use std::path::PathBuf;
pub trait ExternalComponent {
fn download(&mut self);
fn version(&self) -> &String;
fn is_installed(&self) -> bool;
fn location(&self) -> &Option<PathBuf>;
}

View File

@ -1,3 +1,4 @@
mod external_component;
mod prefix;
mod registry;
mod tool;

View File

@ -1,8 +1,7 @@
use std::collections::HashMap;
use crate::download_manager::downloadable::Downloadable;
use super::external_component::ExternalComponent;
pub struct Registry<T: Downloadable> {
pub struct Registry<T: ExternalComponent> {
tools: HashMap<String, T>
}

View File

@ -1,42 +1,26 @@
use std::{path::PathBuf, sync::Arc};
use std::path::PathBuf;
use rustix::path::Arg;
use super::external_component::ExternalComponent;
use crate::download_manager::{download_thread_control_flag::DownloadThreadControl, downloadable::Downloadable, progress_object::ProgressObject};
pub struct ToolDownloader {
id: String,
pub struct Tool {
name: String,
version: String,
location: Option<PathBuf>,
progress: Arc<ProgressObject>,
control_flag: DownloadThreadControl
}
impl Downloadable for ToolDownloader {
fn get_progress_object(&self) -> std::sync::Arc<crate::download_manager::progress_object::ProgressObject> {
impl ExternalComponent for Tool {
fn download(&mut self) {
todo!()
}
fn version(&self) -> String {
self.version.clone()
fn version(&self) -> &String {
&self.version
}
fn id(&self) -> String {
self.id.clone()
fn is_installed(&self) -> bool {
self.location.is_some()
}
fn download(&mut self) -> Result<(), crate::download_manager::application_download_error::ApplicationDownloadError> {
todo!()
}
fn progress(&self) -> Arc<ProgressObject> {
self.progress.clone()
}
fn control_flag(&self) -> DownloadThreadControl {
self.control_flag.clone()
}
fn install_dir(&self) -> String {
self.location.clone().unwrap().to_string_lossy().to_string()
fn location(&self) -> &Option<PathBuf> {
&self.location
}
}