File size: 489 Bytes
4951e76
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
pub fn discard_exact(avail: usize, len: usize) -> Result<usize, u8> {
    let mut avail = avail;
    let mut len = len;
    let mut rounds = 0usize;
    let mut eof = false;
    while len > 0 && !eof {
        let consume_len = if avail < len { avail } else { len };
        if consume_len == 0 {
            eof = true;
        } else {
            avail -= consume_len;
            len -= consume_len;
            rounds += 1;
        }
    }
    if eof { Err(1) } else { Ok(rounds) }
}