From cce48864a2338a11cf7b9585350a327f70b8376b Mon Sep 17 00:00:00 2001 From: bigfoot547 Date: Sun, 19 Jan 2025 21:07:40 -0600 Subject: update strsub --- src/assets.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/assets.rs') diff --git a/src/assets.rs b/src/assets.rs index 9b0b7a7..f7d0977 100644 --- a/src/assets.rs +++ b/src/assets.rs @@ -1,3 +1,4 @@ +use std::collections::HashMap; use std::fmt::Formatter; use std::marker::PhantomData; use serde::{Deserialize, Deserializer}; @@ -20,7 +21,7 @@ pub struct AssetIndex { pub map_to_resources: bool, #[serde(deserialize_with = "deserialize_assets")] - pub objects: Vec + pub objects: HashMap } trait SetName { @@ -33,7 +34,7 @@ impl SetName for Asset { } } -fn deserialize_assets<'de, D, T>(deserializer: D) -> Result, D::Error> +fn deserialize_assets<'de, D, T>(deserializer: D) -> Result, D::Error> where D: Deserializer<'de>, T: SetName + Deserialize<'de> @@ -44,7 +45,7 @@ where where T: SetName + Deserialize<'de> { - type Value = Vec; + type Value = HashMap; fn expecting(&self, formatter: &mut Formatter) -> std::fmt::Result { formatter.write_str("asset objects map") @@ -54,11 +55,11 @@ where where A: MapAccess<'de>, { - let mut out = Vec::new(); + let mut out = HashMap::new(); while let Some((key, mut asset)) = map.next_entry::()? { - asset.set_name(key); - out.push(asset); + asset.set_name(key.clone()); + out.insert(key, asset); } Ok(out) -- cgit v1.2.3-70-g09d2