use crate::parser::{ByteOrder, Parser};
use crate::{Error, Head};
use alloc::vec::Vec;
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub struct Adr {
adrs: Vec<u32>,
}
impl TryFrom<Head<'_>> for Adr {
type Error = Error;
fn try_from(mut node: Head<'_>) -> Result<Self, Self::Error> {
let mut values = Vec::new();
while node.data.len() >= 4 {
let value: u32 = node.data.parse(ByteOrder::Little)?;
values.push(value);
}
if !node.data.is_empty() {
return Err(Error::Invalid);
}
Ok(Self { adrs: values })
}
}