use crate::err::Result; use crate::{utils, ReadSeek}; use serde::ser; /// $Data Attribute #[derive(Clone, Debug)] pub struct DataAttr(Vec); impl DataAttr { pub fn from_stream(stream: &mut S, data_size: usize) -> Result { let mut data = vec![0_u8; data_size]; stream.read_exact(&mut data)?; Ok(DataAttr(data)) } pub fn data(&self) -> &[u8] { &self.0 } } impl ser::Serialize for DataAttr { fn serialize(&self, serializer: S) -> ::std::result::Result where S: ser::Serializer, { serializer.serialize_str(&utils::to_hex_string(&self.0)) } }