diff options
Diffstat (limited to 'src/serialized_file.rs')
-rw-r--r-- | src/serialized_file.rs | 11 |
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> { |