diff options
Diffstat (limited to 'src-tauri/src/core/downloader.rs')
| -rw-r--r-- | src-tauri/src/core/downloader.rs | 43 |
1 files changed, 36 insertions, 7 deletions
diff --git a/src-tauri/src/core/downloader.rs b/src-tauri/src/core/downloader.rs index 26f6ebd..0a3590e 100644 --- a/src-tauri/src/core/downloader.rs +++ b/src-tauri/src/core/downloader.rs @@ -7,8 +7,13 @@ use std::sync::Arc; use tauri::{AppHandle, Emitter, Manager, Window}; use tokio::io::{AsyncSeekExt, AsyncWriteExt}; use tokio::sync::Semaphore; +use ts_rs::TS; -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/DownloadTask.ts" +)] pub struct DownloadTask { pub url: String, pub path: PathBuf, @@ -19,7 +24,11 @@ pub struct DownloadTask { } /// Metadata for resumable downloads stored in .part.meta file -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/DownloadMetadata.ts" +)] pub struct DownloadMetadata { pub url: String, pub file_name: String, @@ -31,7 +40,11 @@ pub struct DownloadMetadata { } /// A download segment for multi-segment parallel downloading -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/DownloadSegment.ts" +)] pub struct DownloadSegment { pub start: u64, pub end: u64, @@ -40,7 +53,11 @@ pub struct DownloadSegment { } /// Progress event for Java download -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/JavaDownloadProgress.ts" +)] pub struct JavaDownloadProgress { pub file_name: String, pub downloaded_bytes: u64, @@ -52,7 +69,11 @@ pub struct JavaDownloadProgress { } /// Pending download task for queue persistence -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/PendingJavaDownload.ts" +)] pub struct PendingJavaDownload { pub major_version: u32, pub image_type: String, @@ -65,7 +86,11 @@ pub struct PendingJavaDownload { } /// Download queue for persistence -#[derive(Debug, Clone, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, Serialize, Deserialize, Default, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/DownloadQueue.ts" +)] pub struct DownloadQueue { pub pending_downloads: Vec<PendingJavaDownload>, } @@ -419,7 +444,11 @@ fn create_new_metadata( } } -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/ProgressEvent.ts" +)] pub struct ProgressEvent { pub file: String, pub downloaded: u64, |