diff options
| author | 2026-01-13 16:14:49 +0800 | |
|---|---|---|
| committer | 2026-01-13 16:14:49 +0800 | |
| commit | 746a94952de6d506dee5f45c77c72ccb597bb516 (patch) | |
| tree | ab3693dba733736a7670ed901aa4b9bf44d99d7b /src-tauri/src/core/game_version.rs | |
| parent | d247a02cd9656b7ca15128e517c8e995af66903a (diff) | |
| download | DropOut-746a94952de6d506dee5f45c77c72ccb597bb516.tar.gz DropOut-746a94952de6d506dee5f45c77c72ccb597bb516.zip | |
Implement library rules validation and zip extraction utility
- Added `is_library_allowed` function to evaluate library permissions based on defined rules.
- Introduced `rule_matches` helper function to check OS compatibility for rules.
- Created `extract_zip` function to handle zip file extraction, including directory creation and skipping of META-INF entries.
Diffstat (limited to 'src-tauri/src/core/game_version.rs')
| -rw-r--r-- | src-tauri/src/core/game_version.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src-tauri/src/core/game_version.rs b/src-tauri/src/core/game_version.rs index c33f99c..9eb8d67 100644 --- a/src-tauri/src/core/game_version.rs +++ b/src-tauri/src/core/game_version.rs @@ -44,6 +44,21 @@ pub struct AssetIndex { pub struct Library { pub downloads: Option<LibraryDownloads>, pub name: String, + pub rules: Option<Vec<Rule>>, + pub natives: Option<serde_json::Value>, +} + +#[derive(Debug, Deserialize)] +pub struct Rule { + pub action: String, // "allow" or "disallow" + pub os: Option<OsRule>, +} + +#[derive(Debug, Deserialize)] +pub struct OsRule { + pub name: Option<String>, // "linux", "osx", "windows" + pub version: Option<String>, // Regex + pub arch: Option<String>, // "x86" } #[derive(Debug, Deserialize)] |