taubyte_sdk/utils/codec/
bytes_slice.rs

1pub 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}