#![allow(dead_code)]
use crate::{
chunks::data_value_type::DataValueType,
errors::AxmlError
};
use std::io:: Cursor;
use byteorder::{
LittleEndian,
ReadBytesExt
};
pub struct ResValue {
pub size: u16,
pub res0: u8,
pub data_type: DataValueType,
pub data: u32,
}
impl ResValue {
pub fn from_buff(axml_buff: &mut Cursor<Vec<u8>>) -> Result<Self, AxmlError> {
let size = axml_buff.read_u16::<LittleEndian>()?;
let res0 = axml_buff.read_u8()?;
if res0 != 0 {
panic!("res0 is not 0");
}
let data_type = DataValueType::from_val(axml_buff.read_u8()?);
let data = axml_buff.read_u32::<LittleEndian>()?;
Ok(ResValue {
size,
res0,
data_type,
data
})
}
}