diff options
| author | 2025-01-19 21:07:40 -0600 | |
|---|---|---|
| committer | 2025-01-19 21:07:40 -0600 | |
| commit | cce48864a2338a11cf7b9585350a327f70b8376b (patch) | |
| tree | 137a81b56dd7426701f492d978662dc46db649b9 /src/assets.rs | |
| parent | more stuff (diff) | |
update strsub
Diffstat (limited to 'src/assets.rs')
| -rw-r--r-- | src/assets.rs | 13 |
1 files changed, 7 insertions, 6 deletions
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<Asset> + pub objects: HashMap<String, Asset> } trait SetName { @@ -33,7 +34,7 @@ impl SetName for Asset { } } -fn deserialize_assets<'de, D, T>(deserializer: D) -> Result<Vec<T>, D::Error> +fn deserialize_assets<'de, D, T>(deserializer: D) -> Result<HashMap<String, T>, D::Error> where D: Deserializer<'de>, T: SetName + Deserialize<'de> @@ -44,7 +45,7 @@ where where T: SetName + Deserialize<'de> { - type Value = Vec<T>; + type Value = HashMap<String, T>; 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::<String, T>()? { - asset.set_name(key); - out.push(asset); + asset.set_name(key.clone()); + out.insert(key, asset); } Ok(out) |
