diff options
| author | 2026-01-21 10:47:56 +0800 | |
|---|---|---|
| committer | 2026-01-21 10:47:56 +0800 | |
| commit | 5cffcfe457d1b15d201647a5775268378c6018c6 (patch) | |
| tree | 562160c25373acc968c7c7abafaf018cd1a21261 /src-tauri/src/core/instance.rs | |
| parent | b27f30bfbdd05a53caaf6fe63fd9354b3689623c (diff) | |
| download | DropOut-5cffcfe457d1b15d201647a5775268378c6018c6.tar.gz DropOut-5cffcfe457d1b15d201647a5775268378c6018c6.zip | |
feat: Add TypeScript support to data structures using ts-rs for type generation
Diffstat (limited to 'src-tauri/src/core/instance.rs')
| -rw-r--r-- | src-tauri/src/core/instance.rs | 16 |
1 files changed, 13 insertions, 3 deletions
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<Instance>, pub active_instance_id: Option<String>, // 当前活动的实例ID |