about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEthan Dagner <napen123@gmail.com>2017-09-10 12:27:57 -0600
committerEthan Dagner <napen123@gmail.com>2017-09-10 12:27:57 -0600
commit18ef0de4bce349917b8e89d85e8f5ce9676b3a86 (patch)
tree2a9eadaf30da34539855f82b270962cd048c9b39
parentd290dec97f8bace2a2585505518b109b1e368f4c (diff)
downloadrust-18ef0de4bce349917b8e89d85e8f5ce9676b3a86.tar.gz
rust-18ef0de4bce349917b8e89d85e8f5ce9676b3a86.zip
Add doc examples to str::from_utf8_unchecked_mut
Fixes #44461
-rw-r--r--src/libcore/str/mod.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/libcore/str/mod.rs b/src/libcore/str/mod.rs
index 62e84c9ebd0..858ada07344 100644
--- a/src/libcore/str/mod.rs
+++ b/src/libcore/str/mod.rs
@@ -382,6 +382,34 @@ pub unsafe fn from_utf8_unchecked(v: &[u8]) -> &str {
 /// See the immutable version, [`from_utf8_unchecked()`][fromutf8], for more information.
 ///
 /// [fromutf8]: fn.from_utf8_unchecked.html
+///
+/// # Examples
+///
+/// Basic usage:
+///
+/// ```
+/// use std::str;
+///
+/// let mut heart = vec![240, 159, 146, 150];
+/// let heart = unsafe { str::from_utf8_unchecked_mut(&mut heart) };
+///
+/// assert_eq!("💖", heart);
+/// ```
+///
+/// Invalid UTF-8:
+///
+/// ```
+/// use std::str;
+///
+/// // Invalid bytes.
+/// let mut bytes = vec![240, 40, 140, 188];
+///
+/// // Returns a str:
+/// unsafe { str::from_utf8_unchecked_mut(&mut bytes) };
+///
+/// // from_utf8 returns an error instead:
+/// assert!(str::from_utf8(&bytes).is_err());
+/// ```
 #[inline]
 #[stable(feature = "str_mut_extras", since = "1.20.0")]
 pub unsafe fn from_utf8_unchecked_mut(v: &mut [u8]) -> &mut str {