Some Unsafe Optimizations

This commit is contained in:
Chaoscaot
2023-03-11 10:17:57 +01:00
parent dd3e3a3c78
commit 971e453d46
4 changed files with 41 additions and 27 deletions

View File

@@ -19,11 +19,11 @@ use nbt::Map;
use schemsearch_files::Schematic;
use crate::normalize_data;
fn create_reverse_palette(schem: &Schematic) -> Vec<String> {
fn create_reverse_palette(schem: &Schematic) -> Vec<&str> {
let mut reverse_palette = Vec::with_capacity(schem.palette_max as usize);
(0..schem.palette_max).for_each(|_| reverse_palette.push(String::new()));
(0..schem.palette_max).for_each(|_| reverse_palette.push(""));
for (key, value) in schem.palette.iter() {
reverse_palette[*value as usize] = key.clone();
reverse_palette[*value as usize] = key;
}
reverse_palette
}
@@ -68,9 +68,9 @@ pub fn match_palette_adapt(schem: &Schematic, matching_palette: &Map<String, i32
let reverse_palette = create_reverse_palette(schem);
for x in &schem.block_data {
let blockname = &reverse_palette[*x as usize];
let blockname = if ignore_data { normalize_data(&blockname, ignore_data) } else { blockname.clone() };
let block_id = match matching_palette.get(&blockname) {
let blockname = reverse_palette[*x as usize];
let blockname = if ignore_data { normalize_data(blockname, ignore_data) } else { blockname };
let block_id = match matching_palette.get(&*blockname) {
None => -1,
Some(x) => *x
};