wasm_gen/
name_section.rs

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
pub struct Naming {
    pub index: u32,
    pub name: String,
}

pub fn write_var_uint32(v: u32, bytes: &mut Vec<u8>) {
    let mut buf = [0u8; 1];
    let mut v = v;
    loop {
        buf[0] = (v & 0b0111_1111) as u8;
        v >>= 7;
        if v > 0 {
            buf[0] |= 0b1000_0000;
        }
        bytes.extend_from_slice(&mut buf[..]);
        if v == 0 {
            break;
        }
    }
}

pub fn write_var_uint7(v: u8, bytes: &mut Vec<u8>) {
    // TODO: check range
    bytes.push(v);
}