mindustry logic execution, map- and schematic- parsing and rendering
Diffstat (limited to 'src/data/mod.rs')
-rw-r--r--src/data/mod.rs13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/data/mod.rs b/src/data/mod.rs
index 0cd1d66..d399c18 100644
--- a/src/data/mod.rs
+++ b/src/data/mod.rs
@@ -126,14 +126,11 @@ impl<'d> DataRead<'d> {
Ok(len)
}
- pub fn read_chunk<E>(
+ pub fn read_chunk<E: Error + From<ReadError>, T>(
&mut self,
big: bool,
- f: impl FnOnce(&mut DataRead) -> Result<(), E>,
- ) -> Result<(), E>
- where
- E: Error + From<ReadError>,
- {
+ f: impl FnOnce(&mut DataRead) -> Result<T, E>,
+ ) -> Result<T, E> {
let len = if big {
self.read_u32()? as usize
} else {
@@ -154,10 +151,10 @@ impl<'d> DataRead<'d> {
};
Err(e)
}
- Ok(_) => {
+ Ok(v) => {
debug_assert!(len >= read, "overread; supposed to read {len}; read {read}");
debug_assert!((len - read) == 0, "supposed to read {len}; read {read}");
- Ok(())
+ Ok(v)
}
}
}