1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use crate::{
BinaryBuilder,
ByteArray,
};
impl BinaryBuilder for Vec<u8> {
fn new() -> Self {
vec![]
}
fn from_raw(ba: &mut ByteArray) -> Option<Self> {
let len: usize = ba.read_safe()?;
let now: usize = ba.now();
ba.seek_next(len)?;
let mut raw = vec![0; len];
raw.clone_from_slice(&ba.as_vec()[now..now+len]);
Some(raw)
}
fn to_raw(&self, mut ba: &mut ByteArray) {
ba <<= &self.len();
ba.as_vec().extend_from_slice(self);
}
}