# Add \`is\_at\_eof()\` to \`BufRead\` trait

**URL:** <https://internals.rust-lang.org/t/add-is-at-eof-to-bufread-trait/14798>\
**Category:** libs\
**Created:** [May 29, 2021, 5:17am UTC](https://internals.rust-lang.org/t/add-is-at-eof-to-bufread-trait/14798 "2021-05-29T05:17:59Z")\
**Posts on this page:** 1\
**Showing post:** 6

<div class="post-metadata">

**Author:** ![YuhanLiin](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/yuhanliin/32/8195_2.png) [@YuhanLiin](https://internals.rust-lang.org/u/YuhanLiin)\
**Post date:** [May 31, 2021, 1:57pm UTC](https://internals.rust-lang.org/t/add-is-at-eof-to-bufread-trait/14798/6 "2021-05-31T13:57:53Z")

</div>

Continuously deserializing objects from a reader.

```rust
while !file.is_at_eof()? {
    let obj = rmp_serde::decode::from_read(&mut file)?;
    // rest of the loop
}

```

If I don't check for EOF then I get a deserialization error, and with some `serde` libs it's hard to tell whether that error is caused by EOF or something else.

---

_[View the full topic](https://internals.rust-lang.org/t/add-is-at-eof-to-bufread-trait/14798)._
