forked from akanyan/STARTLINER
30 lines
715 B
Rust
30 lines
715 B
Rust
use std::collections::{BTreeMap, BTreeSet};
|
|
use serde::{Deserialize, Serialize};
|
|
use crate::pkg::{PkgKey, PkgKeyVersion};
|
|
|
|
use super::misc::Game;
|
|
|
|
// manifest.json
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
pub struct PackageManifest {
|
|
pub name: String,
|
|
pub version_number: String,
|
|
pub website_url: String,
|
|
pub description: String,
|
|
pub dependencies: BTreeSet<PkgKeyVersion>,
|
|
|
|
#[serde(default)]
|
|
pub installers: Vec<BTreeMap<String, serde_json::Value>>,
|
|
|
|
#[serde(default)]
|
|
pub games: Option<Vec<Game>>,
|
|
}
|
|
|
|
pub type PackageList = BTreeMap<PkgKey, PackageListEntry>;
|
|
|
|
#[derive(Serialize, Deserialize, Clone)]
|
|
pub struct PackageListEntry {
|
|
pub version: String,
|
|
pub games: Vec<Game>,
|
|
} |