`is_eof` is convenient function when it has no additional overhead. For `BufRead` it can be implemented as ``` fn is_eof(&mut self) -> Result<bool> { self.fill_buf().map(|b| b.is_empty()) } ```