File size: 516 Bytes
4951e76
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pub fn memory_set_len(cur_len: usize, offset: usize, value_len: usize, target_size: Option<usize>, limit: usize) -> Result<usize, u8> {
    let target = match target_size {
        Some(t) => t,
        None => value_len,
    };
    match offset.checked_add(target) {
        Some(pos) => {
            if pos > limit {
                return Err(1);
            }
        }
        None => return Err(1),
    }
    if cur_len < offset + target {
        Ok(offset + target)
    } else {
        Ok(cur_len)
    }
}