aboutsummaryrefslogtreecommitdiff
path: root/src/serialized_file.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/serialized_file.rs')
-rw-r--r--src/serialized_file.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/serialized_file.rs b/src/serialized_file.rs
index fa17b24..a37ff46 100644
--- a/src/serialized_file.rs
+++ b/src/serialized_file.rs
@@ -58,6 +58,7 @@ pub struct External {
pub struct SerializedFile<T> {
pub file: T,
+ pub file_source_id: usize,
pub header: SerializedFileHeader,
pub types: Vec<SeralizedType>,
pub externals: Vec<External>,
@@ -138,7 +139,7 @@ impl SerializedFileHeader {
}
impl<T: Read + Seek> SerializedFile<T> {
- pub fn read(mut file: T) -> Result<SerializedFile<T>> {
+ pub fn read(mut file: T, file_source_id: usize) -> Result<SerializedFile<T>> {
let h = SerializedFileHeader::read(&mut file)?;
let e = h.endianness;
@@ -318,6 +319,7 @@ impl<T: Read + Seek> SerializedFile<T> {
objects,
scripts,
user_string,
+ file_source_id,
})
}
@@ -356,7 +358,12 @@ impl<T: Read + Seek> SerializedFile<T> {
.type_tree
.as_ref()
.ok_or(anyhow!("type tree missing"))?;
- Value::read(typetree, self.endianness, &mut self.file)
+ Value::read(
+ typetree,
+ self.endianness,
+ self.file_source_id,
+ &mut self.file,
+ )
}
pub fn all_objects_of_class(&self, class_name: &str) -> impl Iterator<Item = &ObjectInfo> {