diff options
author | metamuffin <metamuffin@disroot.org> | 2025-03-13 20:20:25 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-03-13 20:20:25 +0100 |
commit | 56cbc53c8b9b82e7705e268e3cb1bc1e36cdadac (patch) | |
tree | fc30586011e227d09aace65dc0511bdd51dacd57 /src/classes/mesh.rs | |
parent | 8f80baff4d18b67859eded67b8c5097324693862 (diff) | |
download | unity-tools-56cbc53c8b9b82e7705e268e3cb1bc1e36cdadac.tar unity-tools-56cbc53c8b9b82e7705e268e3cb1bc1e36cdadac.tar.bz2 unity-tools-56cbc53c8b9b82e7705e268e3cb1bc1e36cdadac.tar.zst |
remove a few unwraps
Diffstat (limited to 'src/classes/mesh.rs')
-rw-r--r-- | src/classes/mesh.rs | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/src/classes/mesh.rs b/src/classes/mesh.rs index 328af97..b6e6821 100644 --- a/src/classes/mesh.rs +++ b/src/classes/mesh.rs @@ -44,7 +44,7 @@ pub struct ChannelInfo { impl FromValue for Mesh { fn from_value(v: Value) -> Result<Self> { - let mut fields = v.as_class("Mesh").unwrap(); + let mut fields = v.as_class("Mesh")?; Ok(Mesh { name: fields.field("m_Name")?, index_format: fields.field("m_IndexFormat")?, @@ -105,10 +105,14 @@ impl Mesh { impl FromValue for VertexData { fn from_value(v: Value) -> Result<Self> { - let mut fields = v.as_class("VertexData").unwrap(); + let mut fields = v.as_class("VertexData")?; Ok(VertexData { vertex_count: fields.field("m_VertexCount")?, - data: fields.remove("m_DataSize").unwrap().as_typeless().unwrap(), + data: fields + .remove("m_DataSize") + .ok_or(anyhow!("m_DataSize missing"))? + .as_typeless() + .ok_or(anyhow!("m_DataSize is not typeless"))?, channels: fields .remove("m_Channels") .unwrap() @@ -168,26 +172,26 @@ impl VertexData { impl FromValue for ChannelInfo { fn from_value(v: Value) -> Result<Self> { - let mut fields = v.as_class("ChannelInfo").unwrap(); + let mut fields = v.as_class("ChannelInfo")?; Ok(ChannelInfo { - dimension: fields.remove("dimension").unwrap().parse().unwrap(), - format: fields.remove("format").unwrap().parse().unwrap(), - offset: fields.remove("offset").unwrap().parse().unwrap(), - stream: fields.remove("stream").unwrap().parse().unwrap(), + dimension: fields.field("dimension")?, + format: fields.field("format")?, + offset: fields.field("offset")?, + stream: fields.field("stream")?, }) } } impl FromValue for SubMesh { fn from_value(v: Value) -> Result<Self> { - let mut fields = v.as_class("SubMesh").unwrap(); + let mut fields = v.as_class("SubMesh")?; Ok(SubMesh { - topology: fields.remove("topology").unwrap().parse().unwrap(), - vertex_count: fields.remove("vertexCount").unwrap().parse().unwrap(), - base_vertex: fields.remove("baseVertex").unwrap().parse().unwrap(), - first_byte: fields.remove("firstByte").unwrap().parse().unwrap(), - first_vertex: fields.remove("firstVertex").unwrap().parse().unwrap(), - index_count: fields.remove("indexCount").unwrap().parse().unwrap(), + topology: fields.field("topology")?, + vertex_count: fields.field("vertexCount")?, + base_vertex: fields.field("baseVertex")?, + first_byte: fields.field("firstByte")?, + first_vertex: fields.field("firstVertex")?, + index_count: fields.field("indexCount")?, }) } } |