aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src-tauri/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src-tauri/src/core')
-rw-r--r--src-tauri/src/core/manifest.rs31
-rw-r--r--src-tauri/src/core/mod.rs1
2 files changed, 32 insertions, 0 deletions
diff --git a/src-tauri/src/core/manifest.rs b/src-tauri/src/core/manifest.rs
new file mode 100644
index 0000000..1450e77
--- /dev/null
+++ b/src-tauri/src/core/manifest.rs
@@ -0,0 +1,31 @@
+use serde::Deserialize;
+use std::error::Error;
+
+#[derive(Debug, Deserialize)]
+pub struct VersionManifest {
+ pub latest: Latest,
+ pub versions: Vec<Version>,
+}
+
+#[derive(Debug, Deserialize)]
+pub struct Latest {
+ pub release: String,
+ pub snapshot: String,
+}
+
+#[derive(Debug, Deserialize)]
+pub struct Version {
+ pub id: String,
+ #[serde(rename = "type")]
+ pub type_: String,
+ pub url: String,
+ pub time: String,
+ #[serde(rename = "releaseTime")]
+ pub release_time: String,
+}
+
+pub async fn fetch_version_manifest() -> Result<VersionManifest, Box<dyn Error>> {
+ let url = "https://piston-meta.mojang.com/mc/game/version_manifest_v2.json";
+ let resp = reqwest::get(url).await?.json::<VersionManifest>().await?;
+ Ok(resp)
+}
diff --git a/src-tauri/src/core/mod.rs b/src-tauri/src/core/mod.rs
new file mode 100644
index 0000000..640fc64
--- /dev/null
+++ b/src-tauri/src/core/mod.rs
@@ -0,0 +1 @@
+pub mod manifest;