diff options
| author | 2026-01-15 20:48:39 +0800 | |
|---|---|---|
| committer | 2026-01-15 20:48:39 +0800 | |
| commit | 5931daf9283478f49652098c3e0f6be8de0f52f8 (patch) | |
| tree | d150c7733d039d71e40a9d3298952a4627fe2584 /src-tauri/src/core/fabric.rs | |
| parent | 32a9aceee42a2261b64f9e6effda522639576a5e (diff) | |
| parent | 959d1c54e6b5b101b20c027d547707a40ab0a29b (diff) | |
| download | DropOut-5931daf9283478f49652098c3e0f6be8de0f52f8.tar.gz DropOut-5931daf9283478f49652098c3e0f6be8de0f52f8.zip | |
Merge pull request #32 from HsiangNianian/main
Diffstat (limited to 'src-tauri/src/core/fabric.rs')
| -rw-r--r-- | src-tauri/src/core/fabric.rs | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/src-tauri/src/core/fabric.rs b/src-tauri/src/core/fabric.rs index fd38f41..3e4d50d 100644 --- a/src-tauri/src/core/fabric.rs +++ b/src-tauri/src/core/fabric.rs @@ -63,10 +63,31 @@ pub struct FabricLibrary { } /// Main class configuration for Fabric. +/// Can be either a struct with client/server fields or a simple string. #[derive(Debug, Deserialize, Serialize, Clone)] -pub struct FabricMainClass { - pub client: String, - pub server: String, +#[serde(untagged)] +pub enum FabricMainClass { + Structured { + client: String, + server: String, + }, + Simple(String), +} + +impl FabricMainClass { + pub fn client(&self) -> &str { + match self { + FabricMainClass::Structured { client, .. } => client, + FabricMainClass::Simple(s) => s, + } + } + + pub fn server(&self) -> &str { + match self { + FabricMainClass::Structured { server, .. } => server, + FabricMainClass::Simple(s) => s, + } + } } /// Represents a Minecraft version supported by Fabric. |