diff options
Diffstat (limited to 'src/assets.rs')
-rw-r--r-- | src/assets.rs | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/src/assets.rs b/src/assets.rs deleted file mode 100644 index a272920..0000000 --- a/src/assets.rs +++ /dev/null @@ -1,35 +0,0 @@ -use crate::object::Value; -use anyhow::Result; -use std::collections::BTreeMap; - -pub enum AssetValue { - Value(Value), - Array(Vec<AssetValue>), - Object { - class: String, - fields: BTreeMap<String, AssetValue>, - }, -} - -impl AssetValue { - pub fn from_value(value: Value) -> Result<Self> { - Ok(match value { - Value::Array(elems) => Self::Array( - elems - .into_iter() - .map(|e| AssetValue::from_value(e)) - .collect::<Result<Vec<_>>>()?, - ), - Value::Object { class, fields } => match class.as_str() { - _ => Self::Object { - class, - fields: fields - .into_iter() - .map(|(k, v)| Ok((k, AssetValue::from_value(v)?))) - .collect::<Result<BTreeMap<_, _>>>()?, - }, - }, - x => Self::Value(x), - }) - } -} |