diff options
| author | Mara Bos <m-ou.se@m-ou.se> | 2022-03-11 17:25:19 +0100 |
|---|---|---|
| committer | Mara Bos <m-ou.se@m-ou.se> | 2022-03-11 17:29:53 +0100 |
| commit | 4d7daa07b12fd60b4caa9d4af4baf7ead3c21de8 (patch) | |
| tree | 72b2a7a0d8f8a9285d691233686d429ec6aa07ea /library/std/src | |
| parent | a23e7513fa530d9013ca2dd67ad0e0ffb16aa16f (diff) | |
| download | rust-4d7daa07b12fd60b4caa9d4af4baf7ead3c21de8.tar.gz rust-4d7daa07b12fd60b4caa9d4af4baf7ead3c21de8.zip | |
Update advance and advance_slices docs.
Diffstat (limited to 'library/std/src')
| -rw-r--r-- | library/std/src/io/mod.rs | 42 |
1 files changed, 28 insertions, 14 deletions
diff --git a/library/std/src/io/mod.rs b/library/std/src/io/mod.rs index 47be2c504ed..5bb178fc441 100644 --- a/library/std/src/io/mod.rs +++ b/library/std/src/io/mod.rs @@ -1085,6 +1085,10 @@ impl<'a> IoSliceMut<'a> { /// Also see [`IoSliceMut::advance_slices`] to advance the cursors of /// multiple buffers. /// + /// # Panics + /// + /// Panics when trying to advance beyond the end of the slice. + /// /// # Examples /// /// ``` @@ -1106,15 +1110,18 @@ impl<'a> IoSliceMut<'a> { self.0.advance(n) } - /// Advance the internal cursor of the slices. + /// Advance a slice of slices. /// - /// # Notes + /// Shrinks the slice to remove any `IoSliceMut`s that are fully advanced over. + /// If the cursor ends up in the middle of an `IoSliceMut`, it is modified + /// to start at that cursor. + /// + /// For example, if we have a slice of two 8-byte `IoSliceMut`s, and we advance by 10 bytes, + /// the result will only include the second `IoSliceMut`, advanced by 2 bytes. + /// + /// # Panics /// - /// Elements in the slice may be modified if the cursor is not advanced to - /// the end of the slice. For example if we have a slice of buffers with 2 - /// `IoSliceMut`s, both of length 8, and we advance the cursor by 10 bytes - /// the first `IoSliceMut` will be untouched however the second will be - /// modified to remove the first 2 bytes (10 - 8). + /// Panics when trying to advance beyond the end of the slices. /// /// # Examples /// @@ -1222,6 +1229,10 @@ impl<'a> IoSlice<'a> { /// Also see [`IoSlice::advance_slices`] to advance the cursors of multiple /// buffers. /// + /// # Panics + /// + /// Panics when trying to advance beyond the end of the slice. + /// /// # Examples /// /// ``` @@ -1243,15 +1254,18 @@ impl<'a> IoSlice<'a> { self.0.advance(n) } - /// Advance the internal cursor of the slices. + /// Advance a slice of slices. /// - /// # Notes + /// Shrinks the slice to remove any `IoSlice`s that are fully advanced over. + /// If the cursor ends up in the middle of an `IoSlice`, it is modified + /// to start at that cursor. + /// + /// For example, if we have a slice of two 8-byte `IoSlice`s, and we advance by 10 bytes, + /// the result will only include the second `IoSlice`, advanced by 2 bytes. + /// + /// # Panics /// - /// Elements in the slice may be modified if the cursor is not advanced to - /// the end of the slice. For example if we have a slice of buffers with 2 - /// `IoSlice`s, both of length 8, and we advance the cursor by 10 bytes the - /// first `IoSlice` will be untouched however the second will be modified to - /// remove the first 2 bytes (10 - 8). + /// Panics when trying to advance beyond the end of the slices. /// /// # Examples /// |
