Skip to content

Commit 17d3ce4

Browse files
authored
Rollup merge of #75038 - rust-lang:Havvy-patch-1, r=steveklabnik
See also X-Link mem::{swap, take, replace} Since it's easy to end up at one of these functions when you really wanted the other one, cross link them with descriptions of why you'd want to use them.
2 parents c03c213 + e720f42 commit 17d3ce4

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

Diff for: library/core/src/mem/mod.rs

+16
Original file line numberDiff line numberDiff line change
@@ -670,6 +670,9 @@ pub unsafe fn uninitialized<T>() -> T {
670670

671671
/// Swaps the values at two mutable locations, without deinitializing either one.
672672
///
673+
/// * If you want to swap with a default or dummy value, see [`take`].
674+
/// * If you want to swap with a passed value, returning the old value, see [`replace`].
675+
///
673676
/// # Examples
674677
///
675678
/// ```
@@ -683,6 +686,9 @@ pub unsafe fn uninitialized<T>() -> T {
683686
/// assert_eq!(42, x);
684687
/// assert_eq!(5, y);
685688
/// ```
689+
///
690+
/// [`replace`]: fn.replace.html
691+
/// [`take`]: fn.take.html
686692
#[inline]
687693
#[stable(feature = "rust1", since = "1.0.0")]
688694
pub fn swap<T>(x: &mut T, y: &mut T) {
@@ -695,6 +701,9 @@ pub fn swap<T>(x: &mut T, y: &mut T) {
695701

696702
/// Replaces `dest` with the default value of `T`, returning the previous `dest` value.
697703
///
704+
/// * If you want to replace the values of two variables, see [`swap`].
705+
/// * If you want to replace with a passed value instead of the default value, see [`replace`].
706+
///
698707
/// # Examples
699708
///
700709
/// A simple example:
@@ -747,6 +756,8 @@ pub fn swap<T>(x: &mut T, y: &mut T) {
747756
/// ```
748757
///
749758
/// [`Clone`]: ../../std/clone/trait.Clone.html
759+
/// [`replace`]: fn.replace.html
760+
/// [`swap`]: fn.swap.html
750761
#[inline]
751762
#[stable(feature = "mem_take", since = "1.40.0")]
752763
pub fn take<T: Default>(dest: &mut T) -> T {
@@ -757,6 +768,9 @@ pub fn take<T: Default>(dest: &mut T) -> T {
757768
///
758769
/// Neither value is dropped.
759770
///
771+
/// * If you want to replace the values of two variables, see [`swap`].
772+
/// * If you want to replace with a default value, see [`take`].
773+
///
760774
/// # Examples
761775
///
762776
/// A simple example:
@@ -810,6 +824,8 @@ pub fn take<T: Default>(dest: &mut T) -> T {
810824
/// ```
811825
///
812826
/// [`Clone`]: ../../std/clone/trait.Clone.html
827+
/// [`swap`]: fn.swap.html
828+
/// [`take`]: fn.take.html
813829
#[inline]
814830
#[stable(feature = "rust1", since = "1.0.0")]
815831
#[must_use = "if you don't need the old value, you can just assign the new value directly"]

0 commit comments

Comments
 (0)