crazy optimization
This commit is contained in:
parent
192765a3ec
commit
3f91f62047
3 changed files with 37 additions and 25 deletions
|
@ -16,8 +16,8 @@ pub enum Errorfr {
|
||||||
IDMapJsonMissing,
|
IDMapJsonMissing,
|
||||||
|
|
||||||
/// idmap is corrupt
|
/// idmap is corrupt
|
||||||
#[error("Error 2.2: id_keys.json is corrupt. \nYou should run \"--download id_keys\" or \"--download All\".")]
|
#[error("Error 2.2: id_keys.json is corrupt. \nYou should run \"--download id_keys\" or \"--download All\".\n{0}")]
|
||||||
IDMapJsonCorrupt,
|
IDMapJsonCorrupt(serde_json::Error),
|
||||||
|
|
||||||
/// shiny data json is missing
|
/// shiny data json is missing
|
||||||
#[error("Error 2.3: shiny_stats.json is missing. \nYou should run \"--download ShinyStats\" or \"--download All\".")]
|
#[error("Error 2.3: shiny_stats.json is missing. \nYou should run \"--download ShinyStats\" or \"--download All\".")]
|
||||||
|
@ -33,10 +33,18 @@ pub enum Errorfr {
|
||||||
|
|
||||||
/// gear data json is corrupt
|
/// gear data json is corrupt
|
||||||
#[error("Error 2.6: gear.json is corrupt. It's only required for the \"perfect mode\" item gen. \nYou should run \"--download Gear\" or \"--download All\".\n{0:?}")]
|
#[error("Error 2.6: gear.json is corrupt. It's only required for the \"perfect mode\" item gen. \nYou should run \"--download Gear\" or \"--download All\".\n{0:?}")]
|
||||||
GearJsonCorrupt(serde_json5::Error),
|
GearJsonCorrupt(serde_json::Error),
|
||||||
|
|
||||||
|
/// gear json is missing
|
||||||
|
#[error("Error 2.7: gear_cache.json is missing. It's only required for the \"perfect mode\" item gen. \nYou should run \"--download Gear\" or \"--download All\".")]
|
||||||
|
GearJsonCacheMissing,
|
||||||
|
|
||||||
|
/// gear data json is corrupt
|
||||||
|
#[error("Error 2.8: gear_cache.json is corrupt. It's only required for the \"perfect mode\" item gen. \nYou should run \"--download Gear\" or \"--download All\".\n{0:?}")]
|
||||||
|
GearJsonCacheCorrupt(serde_json::Error),
|
||||||
|
|
||||||
/// gear data json cache could not be created
|
/// gear data json cache could not be created
|
||||||
#[error("Error 2.7: unable to create file gear_cache.json.")]
|
#[error("Error 2.8: unable to create file gear_cache.json.")]
|
||||||
GearJsonCacheCreateFail,
|
GearJsonCacheCreateFail,
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,38 +1,41 @@
|
||||||
use crate::dl_json;
|
use crate::{dl_json,
|
||||||
use crate::errorfr::Errorfr;
|
errorfr::Errorfr,
|
||||||
use crate::gearjson;
|
gearjson,
|
||||||
use crate::jsonstruct::Shinystruct;
|
jsonstruct::Shinystruct
|
||||||
|
};
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use std::collections::HashMap;
|
use std::{
|
||||||
use std::{fs, io};
|
collections::HashMap,
|
||||||
use std::io::Write;
|
fs,
|
||||||
|
io::{BufReader, Write}
|
||||||
|
};
|
||||||
|
|
||||||
pub fn load_idkeys(executable_path: &str) -> Result<HashMap<String, u8>, Errorfr> {
|
pub fn load_idkeys(executable_path: &str) -> Result<HashMap<String, u8>, Errorfr> {
|
||||||
// id_keys.json
|
// id_keys.json
|
||||||
serde_json5::from_reader(
|
serde_json::from_reader(&mut BufReader::new(
|
||||||
&mut fs::File::open(executable_path.to_owned() + "/data/id_keys.json")
|
&mut fs::File::open(executable_path.to_owned() + "/data/id_keys.json")
|
||||||
.map_err(|_| Errorfr::IDMapJsonMissing)?)
|
.map_err(|_| Errorfr::IDMapJsonMissing)?))
|
||||||
.map_err(|_| Errorfr::IDMapJsonCorrupt)
|
.map_err(Errorfr::IDMapJsonCorrupt)
|
||||||
}
|
}
|
||||||
pub fn load_shinystats(executable_path: &str) -> Result<Vec<Shinystruct>, Errorfr> {
|
pub fn load_shinystats(executable_path: &str) -> Result<Vec<Shinystruct>, Errorfr> {
|
||||||
// shiny_stats.json
|
// shiny_stats.json
|
||||||
serde_json5::from_reader(
|
serde_json::from_reader(&mut BufReader::new(
|
||||||
&mut fs::File::open(executable_path.to_owned() + "/data/shiny_stats.json")
|
fs::File::open(executable_path.to_owned() + "/data/shiny_stats.json")
|
||||||
.map_err(|_| Errorfr::ShinyJsonMissing)?)
|
.map_err(|_| Errorfr::ShinyJsonMissing)?))
|
||||||
.map_err(|_| Errorfr::ShinyJsonCorrupt)
|
.map_err(|_| Errorfr::ShinyJsonCorrupt)
|
||||||
}
|
}
|
||||||
pub fn load_gear(executable_path: &str) -> Result<HashMap<String, gearjson::GearJsonItem>, Errorfr> {
|
pub fn load_gear(executable_path: &str) -> Result<HashMap<String, gearjson::GearJsonItem>, Errorfr> {
|
||||||
// gear.json (ONLY FOR DL gear.json)
|
// gear.json (ONLY FOR DL gear.json)
|
||||||
serde_json5::from_reader(
|
serde_json::from_reader(&mut BufReader::new(
|
||||||
&mut fs::File::open(executable_path.to_owned() + "/data/gear.json")
|
fs::File::open(executable_path.to_owned() + "/data/gear.json")
|
||||||
.map_err(|_| Errorfr::GearJsonMissing)?)
|
.map_err(|_| Errorfr::GearJsonMissing)?))
|
||||||
.map_err(Errorfr::GearJsonCorrupt)
|
.map_err(Errorfr::GearJsonCacheCorrupt)
|
||||||
}
|
}
|
||||||
pub fn load_gear_cache(executable_path: &str) -> Result<HashMap<String, gearjson::GearJsonItem>, Errorfr> {
|
pub fn load_gear_cache(executable_path: &str) -> Result<HashMap<String, gearjson::GearJsonItem>, Errorfr> {
|
||||||
// gear_cache.json (ONLY FOR PERFECT ITEM FUNCTION GEN)
|
// gear_cache.json (ONLY FOR PERFECT ITEM FUNCTION GEN)
|
||||||
serde_json5::from_reader(
|
serde_json::from_reader(&mut BufReader::new(
|
||||||
&mut fs::File::open(executable_path.to_owned() + "/data/gear_cache.json")
|
fs::File::open(executable_path.to_owned() + "/data/gear_cache.json")
|
||||||
.map_err(|_| Errorfr::GearJsonMissing)?)
|
.map_err(|_| Errorfr::GearJsonCacheMissing)?))
|
||||||
.map_err(Errorfr::GearJsonCorrupt)
|
.map_err(Errorfr::GearJsonCorrupt)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,7 @@ use clap::Parser;
|
||||||
use idmangler_lib::{encoding::string::encode_string, types::EncodingVersion};
|
use idmangler_lib::{encoding::string::encode_string, types::EncodingVersion};
|
||||||
use reqwest::Url;
|
use reqwest::Url;
|
||||||
use std::{collections::HashMap, env, fs, io, path::PathBuf};
|
use std::{collections::HashMap, env, fs, io, path::PathBuf};
|
||||||
|
use std::io::Write;
|
||||||
|
|
||||||
#[derive(Parser, Debug, Clone)]
|
#[derive(Parser, Debug, Clone)]
|
||||||
#[command(version, about, long_about = None, arg_required_else_help(true))]
|
#[command(version, about, long_about = None, arg_required_else_help(true))]
|
||||||
|
@ -41,7 +42,7 @@ fn dl_json(url: Url, savename: String) -> Result<(), Errorfr> {
|
||||||
let savepath = savename.to_string();
|
let savepath = savename.to_string();
|
||||||
println!("Downloading file to {savepath}");
|
println!("Downloading file to {savepath}");
|
||||||
let mut out = fs::File::create(savepath).map_err(|_| Errorfr::JsonDlReqFileCreateFail)?;
|
let mut out = fs::File::create(savepath).map_err(|_| Errorfr::JsonDlReqFileCreateFail)?;
|
||||||
io::copy(&mut body.as_bytes(), &mut out).map_err(|_| Errorfr::JsonDlReqFileWriteFail)?;
|
out.write_all(body.as_bytes()).map_err(|_| Errorfr::JsonDlReqFileWriteFail)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue