From 4eca24700be4cf9f1fad3e7674e4849f4de234a1 Mon Sep 17 00:00:00 2001 From: Anirudh Balaji Date: Fri, 22 Jun 2018 00:20:51 -0700 Subject: [PATCH] Add explanation for (copy, clone)_from_slice It elaborates over why we have to slice the 4-size src to 2-size (same as dst). --- src/libcore/slice/mod.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/libcore/slice/mod.rs b/src/libcore/slice/mod.rs index 6f4c130d8f31..01db55a00f64 100644 --- a/src/libcore/slice/mod.rs +++ b/src/libcore/slice/mod.rs @@ -1541,6 +1541,10 @@ impl [T] { /// let src = [1, 2, 3, 4]; /// let mut dst = [0, 0]; /// + /// // Note: the slices must be the same length, so + /// // you can slice the source to be the same size. + /// // Here we slice the source, four elements, to two, the same size + /// // as the destination slice. It *will* panic if we don't do this. /// dst.clone_from_slice(&src[2..]); /// /// assert_eq!(src, [1, 2, 3, 4]); @@ -1607,6 +1611,10 @@ impl [T] { /// let src = [1, 2, 3, 4]; /// let mut dst = [0, 0]; /// + /// // Note: the slices must be the same length, so + /// // you can slice the source to be the same size. + /// // Here we slice the source, four elements, to two, the same size + /// // as the destination slice. It *will* panic if we don't do this. /// dst.copy_from_slice(&src[2..]); /// /// assert_eq!(src, [1, 2, 3, 4]);