iso14229_1/request/
request_load.rs1use crate::{Configuration, DataFormatIdentifier, Error, MemoryLocation, Placeholder, RequestData, utils};
5
6#[derive(Debug, Clone)]
7pub struct RequestLoadData {
8 pub dfi: DataFormatIdentifier,
9 pub mem_loc: MemoryLocation,
10}
11
12impl RequestData for RequestLoadData {
13 type SubFunc = Placeholder;
14 #[inline]
15 fn try_parse(data: &[u8], _: Option<Self::SubFunc>, cfg: &Configuration) -> Result<Self, Error> {
16 utils::data_length_check(data.len(), 2, false)?;
17
18 let mut offset = 0;
19 let dfi = DataFormatIdentifier(data[offset]);
20 offset += 1;
21
22 let mem_loc = MemoryLocation::from_slice(&data[offset..], cfg)?;
23
24 Ok(Self { dfi, mem_loc })
25 }
26 #[inline]
27 fn to_vec(self, cfg: &Configuration) -> Vec<u8> {
28 let mut result = vec![self.dfi.0, ];
29 result.append(&mut self.mem_loc.to_vec(cfg));
30
31 result
32 }
33}
34