pub enum ResourceData {
File(PathBuf),
Buffer(Vec<u8>),
ArchiveOffset {
offset: u32,
size: u32,
},
}Expand description
ERF resource data source
Variants§
File(PathBuf)
The resource data is located in a separate file
Buffer(Vec<u8>)
The resource data is located here in a buffer
ArchiveOffset
The resource data is located in the ERF file and is not available because the ERF file has not been loaded in memory
Implementations§
Source§impl ResourceData
impl ResourceData
Sourcepub fn len(&self) -> Option<usize>
pub fn len(&self) -> Option<usize>
Returns the length of the resource in bytes. None if it is unknown
pub fn is_empty(&self) -> Option<bool>
Sourcepub fn file_read(&self) -> Result<Vec<u8>, Error>
pub fn file_read(&self) -> Result<Vec<u8>, Error>
Read the file of a ResourceData::File and returns its data
§Panics
If self is not a ResourceData::File
Sourcepub fn file_load(&mut self) -> Result<(), Error>
pub fn file_load(&mut self) -> Result<(), Error>
Converts a ResourceData::File into a ResourceData::Buffer by
loading the file content in memory
§Panics
If self is not a ResourceData::File
Sourcepub fn archiveoffset_seek(
&self,
stream: &mut (impl Seek + Read),
) -> Result<Vec<u8>, Error>
pub fn archiveoffset_seek( &self, stream: &mut (impl Seek + Read), ) -> Result<Vec<u8>, Error>
Seeks and returns the data pointed by the ResourceData::ArchiveOffset
This is typically used to fetch a resource data when only the head of the ERF file has been parsed
§Panics
If self is not a ResourceData::ArchiveOffset
Sourcepub fn archiveoffset_load_stream(
&mut self,
stream: &mut (impl Seek + Read),
) -> Result<(), Error>
pub fn archiveoffset_load_stream( &mut self, stream: &mut (impl Seek + Read), ) -> Result<(), Error>
Converts a ResourceData::ArchiveOffset into a
ResourceData::Buffer by loading the file content in memory
§Panics
If self is not a ResourceData::ArchiveOffset
Sourcepub fn archiveoffset_load(
&mut self,
buffer: &[u8],
buffer_offset: u32,
) -> Result<(), String>
pub fn archiveoffset_load( &mut self, buffer: &[u8], buffer_offset: u32, ) -> Result<(), String>
Converts a ResourceData::ArchiveOffset into a
ResourceData::Buffer by referencing data from buffer
§Args:
- buffer: bytes buffer containing the archive data
- buffer_offset: offset if the buffer has been truncated
§Panics
If self is not a ResourceData::ArchiveOffset