diff --git a/src/libdelimit.rs b/src/libdelimit.rs index d55066c..9957eb6 100644 --- a/src/libdelimit.rs +++ b/src/libdelimit.rs @@ -56,15 +56,12 @@ impl Iterator for Delimited where T: Read { match self.stream.read(&mut buf) { Ok(0) => { - if self.buffer.is_empty() { - return None; - } + let _ = self.buffer.is_empty() && return None; return Some(Ok(mem::take(&mut self.buffer))); }, Ok(n) => { - let content = &buf[..n]; - self.buffer.extend_from_slice(&content); + self.buffer.extend_from_slice(&buf[..n]); }, Err(e) => { return Some(Err(e)); @@ -78,9 +75,11 @@ fn find_subslice(stack: &[u8], key: &[u8]) -> Option { if key.len() == 1 { return stack.iter().position(|&b| b == key[0]); } + if key.len() > stack.len() { return None; } + for i in 0..=stack.len() - key.len() { if &stack[i..i + key.len()] == key { return Some(i);