use core::fmt;
use binrw::BinRead;
use getset::Getters;
use serde::Serialize;
#[derive(Clone, BinRead, Default, Getters)]
#[cfg_attr(feature = "serde", derive(Serialize))]
#[getset(get = "pub")]
pub struct ItemID {
#[br(assert(size == 0 || size>2))]
#[cfg_attr(feature = "serde", serde(skip))]
size: u16,
#[br(if(size > 0), count=if size > 0 {size - 2} else {0})]
data: Vec<u8>,
}
impl fmt::Debug for ItemID {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "ItemID (raw data size {})", self.size)
}
}