fn write()

in src/defs/eif_hasher.rs [117:133]


    fn write(&mut self, buf: &[u8]) -> IoResult<usize> {
        if self.block_size == 0 {
            self.hasher.write_all(buf)?;
            return Ok(buf.len());
        }
        let mut remaining = buf;
        while self.block.len() + remaining.len() >= self.block_size {
            let (for_hasher, for_next_iter) =
                remaining.split_at(self.block_size - self.block.len());
            self.block.extend_from_slice(for_hasher);
            self.consume_block()?;
            remaining = for_next_iter;
        }

        self.block.extend_from_slice(remaining);
        Ok(buf.len())
    }