From 2d830365f1424b8e4137dd3fbe239ba3d8b458a9 Mon Sep 17 00:00:00 2001 From: HsiangNianian Date: Fri, 30 Jan 2026 15:05:06 +0800 Subject: refactor(java): enhance Adoptium structs with TypeScript support --- src-tauri/src/core/java/providers/adoptium.rs | 31 ++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/src-tauri/src/core/java/providers/adoptium.rs b/src-tauri/src/core/java/providers/adoptium.rs index a73a0f6..20fb2d5 100644 --- a/src-tauri/src/core/java/providers/adoptium.rs +++ b/src-tauri/src/core/java/providers/adoptium.rs @@ -4,18 +4,27 @@ use crate::core::java::save_catalog_cache; use crate::core::java::{ImageType, JavaCatalog, JavaDownloadInfo, JavaReleaseInfo}; use serde::Deserialize; use tauri::AppHandle; +use ts_rs::TS; const ADOPTIUM_API_BASE: &str = "https://api.adoptium.net/v3"; -#[derive(Debug, Clone, Deserialize)] +#[derive(Debug, Clone, Deserialize, TS)] +#[ts( + export, + export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts" +)] pub struct AdoptiumAsset { pub binary: AdoptiumBinary, pub release_name: String, pub version: AdoptiumVersionData, } -#[derive(Debug, Clone, Deserialize)] +#[derive(Debug, Clone, Deserialize, TS)] #[allow(dead_code)] +#[ts( + export, + export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts" +)] pub struct AdoptiumBinary { pub os: String, pub architecture: String, @@ -25,7 +34,11 @@ pub struct AdoptiumBinary { pub updated_at: Option, } -#[derive(Debug, Clone, Deserialize)] +#[derive(Debug, Clone, Deserialize, TS)] +#[ts( + export, + export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts" +)] pub struct AdoptiumPackage { pub name: String, pub link: String, @@ -33,8 +46,12 @@ pub struct AdoptiumPackage { pub checksum: Option, } -#[derive(Debug, Clone, Deserialize)] +#[derive(Debug, Clone, Deserialize, TS)] #[allow(dead_code)] +#[ts( + export, + export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts" +)] pub struct AdoptiumVersionData { pub major: u32, pub minor: u32, @@ -43,8 +60,12 @@ pub struct AdoptiumVersionData { pub openjdk_version: String, } -#[derive(Debug, Clone, Deserialize)] +#[derive(Debug, Clone, Deserialize, TS)] #[allow(dead_code)] +#[ts( + export, + export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts" +)] pub struct AvailableReleases { pub available_releases: Vec, pub available_lts_releases: Vec, -- cgit v1.2.3-70-g09d2