File tree 1 file changed +10
-1
lines changed
1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change @@ -506,9 +506,18 @@ pub trait Read {
506
506
///
507
507
/// No guarantees are provided about the contents of `buf` when this
508
508
/// function is called, implementations cannot rely on any property of the
509
- /// contents of `buf` being true. It is recommended that implementations
509
+ /// contents of `buf` being true. It is recommended that * implementations*
510
510
/// only write data to `buf` instead of reading its contents.
511
511
///
512
+ /// Correspondingly, however, *callers* of this method may not assume any guarantees
513
+ /// about how the implementation uses `buf`. The trait is safe to implement,
514
+ // so it is possible that the code that's supposed to write to the buffer might also read
515
+ // from it. It is your responsibility to make sure that `buf` is initialized
516
+ /// before calling `read`. Calling `read` with an uninitialized `buf` (of the kind one
517
+ /// obtains via [`MaybeUninit<T>`]) is not safe, and can lead to undefined behavior.
518
+ ///
519
+ /// [`MaybeUninit<T>`]: ../mem/union.MaybeUninit.html
520
+ ///
512
521
/// # Errors
513
522
///
514
523
/// If this function encounters any form of I/O or other error, an error
You can’t perform that action at this time.
0 commit comments