taubyte_sdk/utils/codec/
bytes_slice.rs1pub fn to(buf:Vec<u8>) -> Vec<Vec<u8>> {
2 let mut result: Vec<Vec<u8>> = Vec::new();
3 let mut idx = 0;
4 while idx < buf.len(){
5 if idx+2 >= buf.len(){
6 break
7 }
8 let size = u16::from_le_bytes([buf[idx], buf[idx+1]]) as usize;
9 idx += 2;
10 if idx+size > buf.len(){
11 break
12 }
13 result.push(buf[idx..idx+size].to_vec());
14 idx += size;
15 }
16 result
17}
18pub fn from(vec: Vec<Vec<u8>>) -> Vec<u8> {
19 let mut result: Vec<u8> = Vec::new();
20 for mut s in vec {
21 result.append(&mut s.len().to_le_bytes().to_vec());
22 result.append(&mut s);
23 }
24 result
25}