1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use crate::error::{CobbleError, CobbleResult};
use crate::instance::Instance;
use crate::minecraft::models::version_data::VersionData;
use crate::minecraft::models::version_manifest::VersionManifest;
use crate::utils::download::download_file_check;
use std::fs;
impl Instance {
pub fn save_version_data(&self) -> CobbleResult<()> {
let manifest = VersionManifest::get()?;
let version_summary = manifest
.versions
.get(&self.version)
.ok_or_else(|| CobbleError::InvalidVersion(self.version.clone()))?;
let version_data_path = self.version_data_path();
download_file_check(&version_summary.url, &version_data_path, None)?;
Ok(())
}
pub fn read_version_data(&self) -> CobbleResult<VersionData> {
let version_data_path = self.version_data_path();
let version_data_file = fs::File::open(version_data_path)?;
let version_data = serde_json::from_reader::<_, VersionData>(version_data_file)?;
Ok(version_data)
}
}