+ let excess_address_data = if read_pos < addr_read_limit {
+ let mut excess_address_data = Vec::with_capacity(addr_read_limit - read_pos);
+ excess_address_data.extend_from_slice(&v[read_pos..addr_read_limit]);
+ excess_address_data
+ } else { Vec::new() };
+
+ let mut excess_data = Vec::with_capacity(v.len() - addr_read_limit);
+ excess_data.extend_from_slice(&v[addr_read_limit..]);
+