From 5cffcfe457d1b15d201647a5775268378c6018c6 Mon Sep 17 00:00:00 2001 From: HsiangNianian Date: Wed, 21 Jan 2026 10:47:56 +0800 Subject: feat: Add TypeScript support to data structures using ts-rs for type generation --- src-tauri/src/core/instance.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src-tauri/src/core/instance.rs') diff --git a/src-tauri/src/core/instance.rs b/src-tauri/src/core/instance.rs index 573273e..a281968 100644 --- a/src-tauri/src/core/instance.rs +++ b/src-tauri/src/core/instance.rs @@ -11,9 +11,11 @@ use std::fs; use std::path::{Path, PathBuf}; use std::sync::Mutex; use tauri::{AppHandle, Manager}; +use ts_rs::TS; /// Represents a game instance/profile -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] +#[ts(export, export_to = "../packages/ui/src/types/generated/Instance.ts")] pub struct Instance { pub id: String, // 唯一标识符(UUID) pub name: String, // 显示名称 @@ -31,14 +33,22 @@ pub struct Instance { } /// Memory settings override for an instance -#[derive(Debug, Clone, Serialize, Deserialize)] +#[derive(Debug, Clone, Serialize, Deserialize, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/MemoryOverride.ts" +)] pub struct MemoryOverride { pub min: u32, // MB pub max: u32, // MB } /// Configuration for all instances -#[derive(Debug, Clone, Serialize, Deserialize, Default)] +#[derive(Debug, Clone, Serialize, Deserialize, Default, TS)] +#[ts( + export, + export_to = "../packages/ui/src/types/generated/InstanceConfig.ts" +)] pub struct InstanceConfig { pub instances: Vec, pub active_instance_id: Option, // 当前活动的实例ID -- cgit v1.2.3-70-g09d2