-
Notifications
You must be signed in to change notification settings - Fork 13.3k
read_buf_exact: on error, all read bytes are appended to the buffer #109022
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Conversation
Guarantee that when `read_buf_exact` returns, all bytes read will be appended to the buffer. Including the case when the operations fails. The motivating use case are operations on a non-blocking reader. When `read_buf_exact` fails with `ErrorKind::WouldBlock` error, the operation can be resumed at a later time.
(rustbot has picked a reviewer for you, use r? to override) |
Hey! It looks like you've submitted a new PR for the library teams! If this PR contains changes to any Examples of
|
r? dtolnay for T-libs-api FCP |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Hopefully my understanding is correct: the reason this is different than read_exact
(which makes ∅ guarantee about what's put in buf
in the error case) is that read_exact has no way to convey to the caller the number of bytes that got written in the error case, whereas in read_buf_exact
the BorrowedCursor keeps track of that and can let the caller soundly access the written part after an error if they want.
@bors r+ rollup |
(The method is unstable; no T-libs-api FCP until later.) |
Rollup of 10 pull requests Successful merges: - rust-lang#104100 (Allow using `Range` as an `Iterator` in const contexts. ) - rust-lang#105793 (Add note for mismatched types because of circular dependencies) - rust-lang#108798 (move default backtrace setting to sys) - rust-lang#108829 (Use Edition 2021 :pat in matches macro) - rust-lang#108973 (Beautify pin! docs) - rust-lang#109003 (Add `useless_anonymous_reexport` lint) - rust-lang#109022 (read_buf_exact: on error, all read bytes are appended to the buffer) - rust-lang#109212 (fix: don't suggest similar method when unstable) - rust-lang#109243 (The name of NativeLib will be presented) - rust-lang#109324 (Implement FixedSizeEncoding for UnusedGenericParams.) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Guarantee that when
read_buf_exact
returns, all bytes read will beappended to the buffer. Including the case when the operations fails.
The motivating use case are operations on a non-blocking reader. When
read_buf_exact
fails withErrorKind::WouldBlock
error, the operationcan be resumed at a later time.