use crate::binary::ReadBytes;
use crate::error::Result;
use crate::files::Decodeable;
use super::*;
impl PropList {
pub(crate) fn read_v2<R: ReadBytes>(&mut self, data: &mut R, extra_data: &Option<DecodeableExtraData>) -> Result<()> {
for _ in 0..data.read_u32()? {
self.keys.push(data.read_sized_string_u8()?);
}
for _ in 0..data.read_u32()? {
self.props.push(Prop::decode(data, extra_data)?);
}
Ok(())
}
pub(crate) fn write_v2<W: WriteBytes>(&mut self, buffer: &mut W, extra_data: &Option<EncodeableExtraData>) -> Result<()> {
buffer.write_u32(self.keys.len() as u32)?;
for key in &self.keys {
buffer.write_sized_string_u8(key)?;
}
buffer.write_u32(self.props.len() as u32)?;
for prop in &mut self.props {
prop.encode(buffer, extra_data)?;
}
Ok(())
}
}