diff options
Diffstat (limited to 'src-tauri/src/core')
| -rw-r--r-- | src-tauri/src/core/account_storage.rs | 20 | ||||
| -rw-r--r-- | src-tauri/src/core/assistant.rs | 30 | ||||
| -rw-r--r-- | src-tauri/src/core/auth.rs | 16 | ||||
| -rw-r--r-- | src-tauri/src/core/config.rs | 15 | ||||
| -rw-r--r-- | src-tauri/src/core/downloader.rs | 37 | ||||
| -rw-r--r-- | src-tauri/src/core/fabric.rs | 54 | ||||
| -rw-r--r-- | src-tauri/src/core/forge.rs | 10 | ||||
| -rw-r--r-- | src-tauri/src/core/game_version.rs | 50 | ||||
| -rw-r--r-- | src-tauri/src/core/instance.rs | 15 | ||||
| -rw-r--r-- | src-tauri/src/core/java/mod.rs | 20 | ||||
| -rw-r--r-- | src-tauri/src/core/java/persistence.rs | 5 | ||||
| -rw-r--r-- | src-tauri/src/core/java/priority.rs | 2 | ||||
| -rw-r--r-- | src-tauri/src/core/java/providers/adoptium.rs | 25 | ||||
| -rw-r--r-- | src-tauri/src/core/manifest.rs | 15 |
14 files changed, 75 insertions, 239 deletions
diff --git a/src-tauri/src/core/account_storage.rs b/src-tauri/src/core/account_storage.rs index a18b5fc..df202cd 100644 --- a/src-tauri/src/core/account_storage.rs +++ b/src-tauri/src/core/account_storage.rs @@ -6,10 +6,7 @@ use ts_rs::TS; /// Stored account data for persistence #[derive(Debug, Clone, Serialize, Deserialize, Default, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/account_storage.ts" -)] +#[ts(export, export_to = "account.ts")] pub struct AccountStore { pub accounts: Vec<StoredAccount>, pub active_account_id: Option<String>, @@ -17,10 +14,7 @@ pub struct AccountStore { #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(tag = "type")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/account_storage.ts" -)] +#[ts(export, export_to = "account.ts")] pub enum StoredAccount { Offline(OfflineAccount), Microsoft(StoredMicrosoftAccount), @@ -28,10 +22,7 @@ pub enum StoredAccount { /// Microsoft account with refresh token for persistence #[derive(Debug, Clone, Serialize, Deserialize, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/account_storage.ts" -)] +#[ts(export, export_to = "account.ts")] pub struct StoredMicrosoftAccount { pub username: String, pub uuid: String, @@ -78,10 +69,7 @@ impl StoredAccount { } #[derive(Debug, Clone, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/account_storage.ts" -)] +#[ts(export, export_to = "account.ts")] pub struct AccountStorage { file_path: PathBuf, } diff --git a/src-tauri/src/core/assistant.rs b/src-tauri/src/core/assistant.rs index 6e656dc..5663007 100644 --- a/src-tauri/src/core/assistant.rs +++ b/src-tauri/src/core/assistant.rs @@ -8,10 +8,7 @@ use ts_rs::TS; #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/assistant.ts" -)] +#[ts(export, export_to = "assistant.ts")] pub struct Message { pub role: String, pub content: String, @@ -59,10 +56,7 @@ pub struct OllamaTagsResponse { // Simplified model info for frontend #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/assistant.ts" -)] +#[ts(export, export_to = "assistant.ts")] pub struct ModelInfo { pub id: String, pub name: String, @@ -115,10 +109,7 @@ pub struct OpenAIModelsResponse { // Streaming response structures #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/assistant.ts" -)] +#[ts(export, export_to = "assistant.ts")] pub struct GenerationStats { pub total_duration: u64, pub load_duration: u64, @@ -130,10 +121,7 @@ pub struct GenerationStats { #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/assistant.ts" -)] +#[ts(export, export_to = "assistant.ts")] pub struct StreamChunk { pub content: String, pub done: bool, @@ -244,7 +232,10 @@ impl GameAssistant { // Add language instruction if not auto if config.response_language != "auto" { - system_content = format!("{}\n\nIMPORTANT: Respond in {}. Do not include Pinyin or English translations unless explicitly requested.", system_content, config.response_language); + system_content = format!( + "{}\n\nIMPORTANT: Respond in {}. Do not include Pinyin or English translations unless explicitly requested.", + system_content, config.response_language + ); } // Add log context if available @@ -456,7 +447,10 @@ impl GameAssistant { let mut system_content = config.system_prompt.clone(); if config.response_language != "auto" { - system_content = format!("{}\n\nIMPORTANT: Respond in {}. Do not include Pinyin or English translations unless explicitly requested.", system_content, config.response_language); + system_content = format!( + "{}\n\nIMPORTANT: Respond in {}. Do not include Pinyin or English translations unless explicitly requested.", + system_content, config.response_language + ); } if !context.is_empty() { diff --git a/src-tauri/src/core/auth.rs b/src-tauri/src/core/auth.rs index 0e873e3..b137957 100644 --- a/src-tauri/src/core/auth.rs +++ b/src-tauri/src/core/auth.rs @@ -15,11 +15,7 @@ fn get_client() -> reqwest::Client { #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(tag = "type")] #[serde(rename_all = "camelCase")] -#[ts( - export, - tag = "type", - export_to = "../../packages/ui-new/src/types/bindings/auth.ts" -)] +#[ts(export, tag = "type", export_to = "auth.ts")] pub enum Account { Offline(OfflineAccount), Microsoft(MicrosoftAccount), @@ -50,7 +46,7 @@ impl Account { #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts(export, export_to = "../../packages/ui-new/src/types/bindings/auth.ts")] +#[ts(export, export_to = "auth.ts")] pub struct OfflineAccount { pub username: String, pub uuid: String, @@ -58,7 +54,7 @@ pub struct OfflineAccount { #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts(export, export_to = "../../packages/ui-new/src/types/bindings/auth.ts")] +#[ts(export, export_to = "auth.ts")] pub struct MicrosoftAccount { pub username: String, pub uuid: String, @@ -89,7 +85,7 @@ const SCOPE: &str = "XboxLive.SignIn XboxLive.offline_access"; #[derive(Debug, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts(export, export_to = "../../packages/ui-new/src/types/bindings/auth.ts")] +#[ts(export, export_to = "auth.ts")] pub struct DeviceCodeResponse { pub user_code: String, pub device_code: String, @@ -101,7 +97,7 @@ pub struct DeviceCodeResponse { #[derive(Debug, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts(export, export_to = "../../packages/ui-new/src/types/bindings/auth.ts")] +#[ts(export, export_to = "auth.ts")] pub struct TokenResponse { pub access_token: String, pub refresh_token: Option<String>, @@ -225,7 +221,7 @@ pub struct MinecraftAuthResponse { #[derive(Debug, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts(export, export_to = "../../packages/ui-new/src/types/bindings/auth.ts")] +#[ts(export, export_to = "auth.ts")] pub struct MinecraftProfile { pub id: String, pub name: String, diff --git a/src-tauri/src/core/config.rs b/src-tauri/src/core/config.rs index 0d0e8ff..d1f306a 100644 --- a/src-tauri/src/core/config.rs +++ b/src-tauri/src/core/config.rs @@ -7,10 +7,7 @@ use ts_rs::TS; #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/config.ts" -)] +#[ts(export, export_to = "config.ts")] #[serde(default)] pub struct AssistantConfig { pub enabled: bool, @@ -51,10 +48,7 @@ impl Default for AssistantConfig { /// Feature-gated arguments configuration #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/config.ts" -)] +#[ts(export, export_to = "config.ts")] #[serde(default)] pub struct FeatureFlags { /// Demo user: enables demo-related arguments when rules require it @@ -83,10 +77,7 @@ impl Default for FeatureFlags { #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/config.ts" -)] +#[ts(export, export_to = "config.ts")] #[serde(default)] pub struct LauncherConfig { pub min_memory: u32, // in MB diff --git a/src-tauri/src/core/downloader.rs b/src-tauri/src/core/downloader.rs index d4fc782..a6b11c5 100644 --- a/src-tauri/src/core/downloader.rs +++ b/src-tauri/src/core/downloader.rs @@ -2,8 +2,8 @@ use futures::StreamExt; use serde::{Deserialize, Serialize}; use sha1::Digest as Sha1Digest; use std::path::PathBuf; -use std::sync::atomic::{AtomicBool, AtomicU64, AtomicUsize, Ordering}; use std::sync::Arc; +use std::sync::atomic::{AtomicBool, AtomicU64, AtomicUsize, Ordering}; use tauri::{AppHandle, Emitter, Manager, Window}; use tokio::io::{AsyncSeekExt, AsyncWriteExt}; use tokio::sync::Semaphore; @@ -11,10 +11,7 @@ use ts_rs::TS; #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/downloader.ts" -)] +#[ts(export, export_to = "downloader.ts")] pub struct DownloadTask { pub url: String, pub path: PathBuf, @@ -27,10 +24,7 @@ pub struct DownloadTask { /// Metadata for resumable downloads stored in .part.meta file #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/downloader.ts" -)] +#[ts(export, export_to = "downloader.ts")] pub struct DownloadMetadata { pub url: String, pub file_name: String, @@ -44,10 +38,7 @@ pub struct DownloadMetadata { /// A download segment for multi-segment parallel downloading #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/downloader.ts" -)] +#[ts(export, export_to = "downloader.ts")] pub struct DownloadSegment { pub start: u64, pub end: u64, @@ -58,10 +49,7 @@ pub struct DownloadSegment { /// Progress event for Java download #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/downloader.ts" -)] +#[ts(export, export_to = "downloader.ts")] pub struct JavaDownloadProgress { pub file_name: String, pub downloaded_bytes: u64, @@ -75,10 +63,7 @@ pub struct JavaDownloadProgress { /// Pending download task for queue persistence #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/downloader.ts" -)] +#[ts(export, export_to = "downloader.ts")] pub struct PendingJavaDownload { pub major_version: u32, pub image_type: String, @@ -93,10 +78,7 @@ pub struct PendingJavaDownload { /// Download queue for persistence #[derive(Debug, Clone, Serialize, Deserialize, Default, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/downloader.ts" -)] +#[ts(export, export_to = "downloader.ts")] pub struct DownloadQueue { pub pending_downloads: Vec<PendingJavaDownload>, } @@ -452,10 +434,7 @@ fn create_new_metadata( #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui/src/types/generated/downloader.ts" -)] +#[ts(export, export_to = "downloader.ts")] pub struct ProgressEvent { pub file: String, pub downloaded: u64, diff --git a/src-tauri/src/core/fabric.rs b/src-tauri/src/core/fabric.rs index 7385850..a6ef236 100644 --- a/src-tauri/src/core/fabric.rs +++ b/src-tauri/src/core/fabric.rs @@ -15,10 +15,7 @@ const FABRIC_META_URL: &str = "https://meta.fabricmc.net/v2"; /// Represents a Fabric loader version from the Meta API. #[derive(Debug, Deserialize, Serialize, Clone, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/fabric.ts" -)] +#[ts(export, export_to = "fabric.ts")] pub struct FabricLoaderVersion { pub separator: String, pub build: i32, @@ -30,10 +27,7 @@ pub struct FabricLoaderVersion { /// Represents a Fabric intermediary mapping version. #[derive(Debug, Deserialize, Serialize, Clone, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/fabric.ts" -)] +#[ts(export, export_to = "fabric.ts")] pub struct FabricIntermediaryVersion { pub maven: String, pub version: String, @@ -43,10 +37,7 @@ pub struct FabricIntermediaryVersion { /// Represents a combined loader + intermediary version entry. #[derive(Debug, Deserialize, Serialize, Clone, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/fabric.ts" -)] +#[ts(export, export_to = "fabric.ts")] pub struct FabricLoaderEntry { pub loader: FabricLoaderVersion, pub intermediary: FabricIntermediaryVersion, @@ -57,10 +48,7 @@ pub struct FabricLoaderEntry { /// Launcher metadata from Fabric Meta API. #[derive(Debug, Deserialize, Serialize, Clone, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/fabric.ts" -)] +#[ts(export, export_to = "fabric.ts")] pub struct FabricLauncherMeta { pub version: i32, pub libraries: FabricLibraries, @@ -71,10 +59,7 @@ pub struct FabricLauncherMeta { /// Libraries required by Fabric loader. #[derive(Debug, Deserialize, Serialize, Clone, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/fabric.ts" -)] +#[ts(export, export_to = "fabric.ts")] pub struct FabricLibraries { pub client: Vec<FabricLibrary>, pub common: Vec<FabricLibrary>, @@ -84,10 +69,7 @@ pub struct FabricLibraries { /// A single Fabric library dependency. #[derive(Debug, Deserialize, Serialize, Clone, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/fabric.ts" -)] +#[ts(export, export_to = "fabric.ts")] pub struct FabricLibrary { pub name: String, pub url: Option<String>, @@ -97,11 +79,7 @@ pub struct FabricLibrary { /// Can be either a struct with client/server fields or a simple string. #[derive(Debug, Deserialize, Serialize, Clone, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/fabric.ts", - untagged -)] +#[ts(export, export_to = "fabric.ts", untagged)] #[serde(untagged)] pub enum FabricMainClass { Structured { client: String, server: String }, @@ -128,10 +106,7 @@ impl FabricMainClass { /// Represents a Minecraft version supported by Fabric. #[derive(Debug, Deserialize, Serialize, Clone, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/fabric.ts" -)] +#[ts(export, export_to = "fabric.ts")] pub struct FabricGameVersion { pub version: String, pub stable: bool, @@ -140,10 +115,7 @@ pub struct FabricGameVersion { /// Information about an installed Fabric version. #[derive(Debug, Serialize, Clone, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/fabric.ts" -)] +#[ts(export, export_to = "fabric.ts")] pub struct InstalledFabricVersion { pub id: String, pub minecraft_version: String, @@ -155,8 +127,8 @@ pub struct InstalledFabricVersion { /// /// # Returns /// A list of game versions that have Fabric intermediary mappings available. -pub async fn fetch_supported_game_versions( -) -> Result<Vec<FabricGameVersion>, Box<dyn Error + Send + Sync>> { +pub async fn fetch_supported_game_versions() +-> Result<Vec<FabricGameVersion>, Box<dyn Error + Send + Sync>> { let url = format!("{}/versions/game", FABRIC_META_URL); let resp = reqwest::get(&url) .await? @@ -169,8 +141,8 @@ pub async fn fetch_supported_game_versions( /// /// # Returns /// A list of all Fabric loader versions, ordered by build number (newest first). -pub async fn fetch_loader_versions( -) -> Result<Vec<FabricLoaderVersion>, Box<dyn Error + Send + Sync>> { +pub async fn fetch_loader_versions() +-> Result<Vec<FabricLoaderVersion>, Box<dyn Error + Send + Sync>> { let url = format!("{}/versions/loader", FABRIC_META_URL); let resp = reqwest::get(&url) .await? diff --git a/src-tauri/src/core/forge.rs b/src-tauri/src/core/forge.rs index 1d4ae1d..4452f8e 100644 --- a/src-tauri/src/core/forge.rs +++ b/src-tauri/src/core/forge.rs @@ -22,10 +22,7 @@ const FORGE_FILES_URL: &str = "https://files.minecraftforge.net/"; /// Represents a Forge version entry. #[derive(Debug, Deserialize, Serialize, Clone, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/forge.ts" -)] +#[ts(export, export_to = "forge.ts")] pub struct ForgeVersion { pub version: String, pub minecraft_version: String, @@ -44,10 +41,7 @@ struct ForgePromotions { /// Information about an installed Forge version. #[derive(Debug, Serialize, Clone, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/forge.ts" -)] +#[ts(export, export_to = "forge.ts")] pub struct InstalledForgeVersion { pub id: String, pub minecraft_version: String, diff --git a/src-tauri/src/core/game_version.rs b/src-tauri/src/core/game_version.rs index 7df631a..82196bd 100644 --- a/src-tauri/src/core/game_version.rs +++ b/src-tauri/src/core/game_version.rs @@ -4,10 +4,7 @@ use ts_rs::TS; /// Represents a Minecraft version JSON, supporting both vanilla and modded (Fabric/Forge) formats. /// Modded versions use `inheritsFrom` to reference a parent vanilla version. #[derive(Debug, Deserialize, Serialize, Clone, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/game_version.ts" -)] +#[ts(export, export_to = "game-version.ts")] pub struct GameVersion { pub id: String, /// Optional for mod loaders that inherit from vanilla @@ -34,20 +31,14 @@ pub struct GameVersion { } #[derive(Debug, Deserialize, Serialize, Clone, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/game_version.ts" -)] +#[ts(export, export_to = "game-version.ts")] pub struct Downloads { pub client: DownloadArtifact, pub server: Option<DownloadArtifact>, } #[derive(Debug, Deserialize, Serialize, Clone, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/game_version.ts" -)] +#[ts(export, export_to = "game-version.ts")] pub struct DownloadArtifact { pub sha1: Option<String>, pub size: Option<u64>, @@ -56,10 +47,7 @@ pub struct DownloadArtifact { } #[derive(Debug, Deserialize, Serialize, Clone, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/game_version.ts" -)] +#[ts(export, export_to = "game-version.ts")] pub struct AssetIndex { pub id: String, pub sha1: String, @@ -70,10 +58,7 @@ pub struct AssetIndex { } #[derive(Debug, Deserialize, Serialize, Clone, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/game_version.ts" -)] +#[ts(export, export_to = "game-version.ts")] pub struct Library { pub downloads: Option<LibraryDownloads>, pub name: String, @@ -85,10 +70,7 @@ pub struct Library { } #[derive(Debug, Deserialize, Serialize, Clone, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/game_version.ts" -)] +#[ts(export, export_to = "game-version.ts")] pub struct Rule { pub action: String, // "allow" or "disallow" pub os: Option<OsRule>, @@ -97,10 +79,7 @@ pub struct Rule { } #[derive(Debug, Deserialize, Serialize, Clone, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/game_version.ts" -)] +#[ts(export, export_to = "game-version.ts")] pub struct OsRule { pub name: Option<String>, // "linux", "osx", "windows" pub version: Option<String>, // Regex @@ -108,10 +87,7 @@ pub struct OsRule { } #[derive(Debug, Deserialize, Serialize, Clone, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/game_version.ts" -)] +#[ts(export, export_to = "game-version.ts")] pub struct LibraryDownloads { pub artifact: Option<DownloadArtifact>, #[ts(type = "Record<string, unknown>")] @@ -119,10 +95,7 @@ pub struct LibraryDownloads { } #[derive(Debug, Deserialize, Serialize, Clone, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/game_version.ts" -)] +#[ts(export, export_to = "game-version.ts")] pub struct Arguments { #[ts(type = "Record<string, unknown>")] pub game: Option<serde_json::Value>, @@ -131,10 +104,7 @@ pub struct Arguments { } #[derive(Debug, Deserialize, Serialize, Clone, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/game_version.ts" -)] +#[ts(export, export_to = "game-version.ts")] pub struct JavaVersion { pub component: String, #[serde(rename = "majorVersion")] diff --git a/src-tauri/src/core/instance.rs b/src-tauri/src/core/instance.rs index e842ec9..0237270 100644 --- a/src-tauri/src/core/instance.rs +++ b/src-tauri/src/core/instance.rs @@ -16,10 +16,7 @@ use ts_rs::TS; /// Represents a game instance/profile #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/instance.ts" -)] +#[ts(export, export_to = "instance.ts")] pub struct Instance { pub id: String, // 唯一标识符(UUID) pub name: String, // 显示名称 @@ -40,10 +37,7 @@ pub struct Instance { /// Memory settings override for an instance #[derive(Debug, Clone, Serialize, Deserialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/instance.ts" -)] +#[ts(export, export_to = "instance.ts")] pub struct MemoryOverride { pub min: u32, // MB pub max: u32, // MB @@ -52,10 +46,7 @@ pub struct MemoryOverride { /// Configuration for all instances #[derive(Debug, Clone, Serialize, Deserialize, Default, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/instance.ts" -)] +#[ts(export, export_to = "instance.ts")] pub struct InstanceConfig { pub instances: Vec<Instance>, pub active_instance_id: Option<String>, // 当前活动的实例ID diff --git a/src-tauri/src/core/java/mod.rs b/src-tauri/src/core/java/mod.rs index 2215872..c8d936d 100644 --- a/src-tauri/src/core/java/mod.rs +++ b/src-tauri/src/core/java/mod.rs @@ -33,10 +33,7 @@ use providers::AdoptiumProvider; const CACHE_DURATION_SECS: u64 = 24 * 60 * 60; #[derive(Debug, Clone, Serialize, Deserialize, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/java/index.ts" -)] +#[ts(export, export_to = "java/core.ts")] pub struct JavaInstallation { pub path: String, pub version: String, @@ -69,10 +66,7 @@ impl std::fmt::Display for ImageType { } #[derive(Debug, Clone, Serialize, Deserialize, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/java/index.ts" -)] +#[ts(export, export_to = "java/core.ts")] pub struct JavaReleaseInfo { pub major_version: u32, pub image_type: String, @@ -88,10 +82,7 @@ pub struct JavaReleaseInfo { } #[derive(Debug, Clone, Serialize, Deserialize, Default, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/java/index.ts" -)] +#[ts(export, export_to = "java/core.ts")] pub struct JavaCatalog { pub releases: Vec<JavaReleaseInfo>, pub available_major_versions: Vec<u32>, @@ -100,10 +91,7 @@ pub struct JavaCatalog { } #[derive(Debug, Clone, Serialize, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/java/index.ts" -)] +#[ts(export, export_to = "java/core.ts")] pub struct JavaDownloadInfo { pub version: String, // e.g., "17.0.2+8" pub release_name: String, // e.g., "jdk-17.0.2+8" diff --git a/src-tauri/src/core/java/persistence.rs b/src-tauri/src/core/java/persistence.rs index 6720696..a6727d7 100644 --- a/src-tauri/src/core/java/persistence.rs +++ b/src-tauri/src/core/java/persistence.rs @@ -5,10 +5,7 @@ use tauri::{AppHandle, Manager}; use ts_rs::TS; #[derive(Debug, Clone, Serialize, Deserialize, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/java/persistence.ts" -)] +#[ts(export, export_to = "java/persistence.ts")] pub struct JavaConfig { pub user_defined_paths: Vec<String>, pub preferred_java_path: Option<String>, diff --git a/src-tauri/src/core/java/priority.rs b/src-tauri/src/core/java/priority.rs index b2e9fb4..f991eb7 100644 --- a/src-tauri/src/core/java/priority.rs +++ b/src-tauri/src/core/java/priority.rs @@ -1,8 +1,8 @@ use tauri::AppHandle; +use crate::core::java::JavaInstallation; use crate::core::java::persistence; use crate::core::java::validation; -use crate::core::java::JavaInstallation; pub async fn resolve_java_for_launch( app_handle: &AppHandle, diff --git a/src-tauri/src/core/java/providers/adoptium.rs b/src-tauri/src/core/java/providers/adoptium.rs index 20fb2d5..1765a99 100644 --- a/src-tauri/src/core/java/providers/adoptium.rs +++ b/src-tauri/src/core/java/providers/adoptium.rs @@ -9,10 +9,7 @@ use ts_rs::TS; const ADOPTIUM_API_BASE: &str = "https://api.adoptium.net/v3"; #[derive(Debug, Clone, Deserialize, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts" -)] +#[ts(export, export_to = "java/providers/adoptium.ts")] pub struct AdoptiumAsset { pub binary: AdoptiumBinary, pub release_name: String, @@ -21,10 +18,7 @@ pub struct AdoptiumAsset { #[derive(Debug, Clone, Deserialize, TS)] #[allow(dead_code)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts" -)] +#[ts(export, export_to = "java/providers/adoptium.ts")] pub struct AdoptiumBinary { pub os: String, pub architecture: String, @@ -35,10 +29,7 @@ pub struct AdoptiumBinary { } #[derive(Debug, Clone, Deserialize, TS)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts" -)] +#[ts(export, export_to = "java/providers/adoptium.ts")] pub struct AdoptiumPackage { pub name: String, pub link: String, @@ -48,10 +39,7 @@ pub struct AdoptiumPackage { #[derive(Debug, Clone, Deserialize, TS)] #[allow(dead_code)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts" -)] +#[ts(export, export_to = "java/providers/adoptium.ts")] pub struct AdoptiumVersionData { pub major: u32, pub minor: u32, @@ -62,10 +50,7 @@ pub struct AdoptiumVersionData { #[derive(Debug, Clone, Deserialize, TS)] #[allow(dead_code)] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/java/providers/adoptium.ts" -)] +#[ts(export, export_to = "java/providers/adoptium.ts")] pub struct AvailableReleases { pub available_releases: Vec<u32>, pub available_lts_releases: Vec<u32>, diff --git a/src-tauri/src/core/manifest.rs b/src-tauri/src/core/manifest.rs index 9e4cb4e..d40d958 100644 --- a/src-tauri/src/core/manifest.rs +++ b/src-tauri/src/core/manifest.rs @@ -7,10 +7,7 @@ use ts_rs::TS; #[derive(Debug, Deserialize, Serialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/manifest.ts" -)] +#[ts(export, export_to = "manifest.ts")] pub struct VersionManifest { pub latest: Latest, pub versions: Vec<Version>, @@ -18,10 +15,7 @@ pub struct VersionManifest { #[derive(Debug, Deserialize, Serialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/manifest.ts" -)] +#[ts(export, export_to = "manifest.ts")] pub struct Latest { pub release: String, pub snapshot: String, @@ -29,10 +23,7 @@ pub struct Latest { #[derive(Debug, Deserialize, Serialize, TS)] #[serde(rename_all = "camelCase")] -#[ts( - export, - export_to = "../../packages/ui-new/src/types/bindings/manifest.ts" -)] +#[ts(export, export_to = "manifest.ts")] pub struct Version { pub id: String, #[serde(rename = "type")] |