wip: rename this function so it makes sense to call like this
This commit is contained in:
parent
85537484d1
commit
8719413eaa
40
src/v0.rs
40
src/v0.rs
@ -419,37 +419,37 @@ where
|
||||
impl Block{
|
||||
fn read<R:BinReaderExt>(data:R)->binrw::BinResult<Block>{
|
||||
let mut block=Block::default();
|
||||
Block::read_into(data,&mut block)?;
|
||||
block.read_into(data)?;
|
||||
Ok(block)
|
||||
}
|
||||
fn read_into<R:BinReaderExt>(mut data:R,block:&mut Block)->binrw::BinResult<()>{
|
||||
fn read_into<R:BinReaderExt>(&mut self,mut data:R)->binrw::BinResult<()>{
|
||||
// well... this looks error prone
|
||||
while let Ok(event_chunk_header)=data.read_le::<EventChunkHeader>(){
|
||||
match event_chunk_header.event_type{
|
||||
EventType::Input=>read_data_into_events(&mut data,&mut block.input_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Output=>read_data_into_events(&mut data,&mut block.output_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Sound=>read_data_into_events(&mut data,&mut block.sound_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::World=>read_data_into_events(&mut data,&mut block.world_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Gravity=>read_data_into_events(&mut data,&mut block.gravity_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Run=>read_data_into_events(&mut data,&mut block.run_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Camera=>read_data_into_events(&mut data,&mut block.camera_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Setting=>read_data_into_events(&mut data,&mut block.setting_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Input=>read_data_into_events(&mut data,&mut self.input_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Output=>read_data_into_events(&mut data,&mut self.output_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Sound=>read_data_into_events(&mut data,&mut self.sound_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::World=>read_data_into_events(&mut data,&mut self.world_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Gravity=>read_data_into_events(&mut data,&mut self.gravity_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Run=>read_data_into_events(&mut data,&mut self.run_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Camera=>read_data_into_events(&mut data,&mut self.camera_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Setting=>read_data_into_events(&mut data,&mut self.setting_events,event_chunk_header.num_events as usize)?,
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
fn read_into_amortized<R:BinReaderExt>(mut data:R,block:&mut Block)->binrw::BinResult<()>{
|
||||
fn read_into_amortized<R:BinReaderExt>(&mut self,mut data:R)->binrw::BinResult<()>{
|
||||
// sad code duplication
|
||||
while let Ok(event_chunk_header)=data.read_le::<EventChunkHeader>(){
|
||||
match event_chunk_header.event_type{
|
||||
EventType::Input=>read_data_into_events_amortized(&mut data,&mut block.input_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Output=>read_data_into_events_amortized(&mut data,&mut block.output_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Sound=>read_data_into_events_amortized(&mut data,&mut block.sound_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::World=>read_data_into_events_amortized(&mut data,&mut block.world_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Gravity=>read_data_into_events_amortized(&mut data,&mut block.gravity_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Run=>read_data_into_events_amortized(&mut data,&mut block.run_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Camera=>read_data_into_events_amortized(&mut data,&mut block.camera_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Setting=>read_data_into_events_amortized(&mut data,&mut block.setting_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Input=>read_data_into_events_amortized(&mut data,&mut self.input_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Output=>read_data_into_events_amortized(&mut data,&mut self.output_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Sound=>read_data_into_events_amortized(&mut data,&mut self.sound_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::World=>read_data_into_events_amortized(&mut data,&mut self.world_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Gravity=>read_data_into_events_amortized(&mut data,&mut self.gravity_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Run=>read_data_into_events_amortized(&mut data,&mut self.run_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Camera=>read_data_into_events_amortized(&mut data,&mut self.camera_events,event_chunk_header.num_events as usize)?,
|
||||
EventType::Setting=>read_data_into_events_amortized(&mut data,&mut self.setting_events,event_chunk_header.num_events as usize)?,
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
@ -605,7 +605,7 @@ impl<R:BinReaderExt> FileData<R>{
|
||||
}
|
||||
pub fn read_block_info_into_block(&mut self,block_info:BlockInfo,block:&mut Block)->Result<(),Error>{
|
||||
let data=self.block_reader(block_info)?;
|
||||
Block::read_into_amortized(data,block).map_err(Error::InvalidData)?;
|
||||
block.read_into_amortized(data).map_err(Error::InvalidData)?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user