informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Pertama kali diterbitkan padaBlog pribadi Enaium
Kita perlu mendeklarasikan beberapa struktur untuk menyimpan informasi sumber daya game, dan kemudian kita perlu melakukannyajson
File tersebut diuraikan ke dalam struktur ini, jadi kita perlu menambahkanserde
mengandalkan.
serde = { version = "1.0", features = ["derive"] }
Terkait sumber dayaasset.rs
use serde::Deserialize;
use std::collections::HashMap;
#[derive(Deserialize)]
pub struct AssetIndex {
pub id: String,
pub sha1: String,
pub size: u32,
#[serde(alias = "totalSize")]
pub total_size: u32,
pub url: String,
}
#[derive(Deserialize)]
pub struct Index {
pub objects: HashMap<String, Object>,
}
#[derive(Deserialize)]
pub struct Object {
pub hash: String,
pub size: u32,
}
Tubuh permainanversion.rs
use serde::Deserialize;
use crate::{asset::AssetIndex, library::Library};
pub type Libraries = Vec<Library>;
#[derive(Deserialize)]
pub struct Version {
#[serde(alias = "assetIndex")]
pub asset_index: AssetIndex,
pub downloads: Download,
pub id: String,
pub libraries: Libraries,
#[serde(alias = "mainClass")]
pub main_class: String,
#[serde(alias = "releaseTime")]
pub release_time: String,
pub time: String,
#[serde(alias = "type")]
pub type_: String,
}
#[derive(Deserialize)]
pub struct Download {
pub client: Client,
}
#[derive(Deserialize)]
pub struct Client {
pub sha1: String,
pub size: u32,
pub url: String,
}
Perpustakaan ketergantungan gamelibrary.rs
use serde::Deserialize;
#[derive(Deserialize)]
pub struct Library {
pub downloads: Download,
pub name: String,
pub rules: Option<Vec<Rule>>,
}
#[derive(Deserialize)]
pub struct Rule {
pub action: String,
pub os: Os,
}
#[derive(Deserialize)]
pub struct Os {
pub name: String,
}
#[derive(Deserialize)]
pub struct Download {
pub artifact: Artifact,
}
#[derive(Deserialize)]
pub struct Artifact {
pub path: String,
pub sha1: String,
pub size: i32,
pub url: String,
}
Ada juga daftar versiversion_manifest.rs
use serde::Deserialize;
#[derive(Deserialize)]
pub struct VersionManifest {
pub latest: Latest,
pub versions: Vec<Version>,
}
#[derive(Deserialize)]
pub struct Latest {
pub release: String,
pub snapshot: String,
}
#[derive(Deserialize)]
pub struct Version {
pub id: String,
#[serde(alias = "type")]
pub type_: String,
pub url: String,
pub time: String,
#[serde(alias = "releaseTime")]
pub release_time: String,
}
Terakhir, kami mengimpor modul-modul ini ke dalamnyalib.rs
tengah.
pub mod asset;
pub mod library;
pub mod version;
pub mod version_manifest;