about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeff Dickey <216188+jdxcode@users.noreply.github.com>2019-11-01 19:42:33 -0700
committerJeff Dickey <216188+jdxcode@users.noreply.github.com>2019-11-01 20:18:33 -0700
commitd9ec5fa88ca0c082aa2089b372e7981f9d514e82 (patch)
treeea8f6199acc3b92e0b1bf0e7f2f7daf4e28bdcd1
parent87cbf0a547aaf9e8a7fc708851ecf4bc2adab5fd (diff)
downloadrust-d9ec5fa88ca0c082aa2089b372e7981f9d514e82.tar.gz
rust-d9ec5fa88ca0c082aa2089b372e7981f9d514e82.zip
doc(str): show example of chars().count() under len()
the docs are great at explaining that .len() isn't like in other
languages but stops short of explaining how to get the character length.

r? @steveklabnik
-rw-r--r--src/liballoc/string.rs9
-rw-r--r--src/libcore/str/mod.rs4
2 files changed, 9 insertions, 4 deletions
diff --git a/src/liballoc/string.rs b/src/liballoc/string.rs
index d9927c642b2..0e5746d0d9d 100644
--- a/src/liballoc/string.rs
+++ b/src/liballoc/string.rs
@@ -1402,7 +1402,9 @@ impl String {
         &mut self.vec
     }
 
-    /// Returns the length of this `String`, in bytes.
+    /// Returns the length of this `String`, in bytes, not [`char`]s or
+    /// graphemes. In other words, it may not be what a human considers the
+    /// length of the string.
     ///
     /// # Examples
     ///
@@ -1410,8 +1412,11 @@ impl String {
     ///
     /// ```
     /// let a = String::from("foo");
-    ///
     /// assert_eq!(a.len(), 3);
+    ///
+    /// let fancy_f = String::from("ƒoo");
+    /// assert_eq!(fancy_f.len(), 4);
+    /// assert_eq!(fancy_f.chars().count(), 3);
     /// ```
     #[inline]
     #[stable(feature = "rust1", since = "1.0.0")]
diff --git a/src/libcore/str/mod.rs b/src/libcore/str/mod.rs
index f67012d8f2f..1968919f554 100644
--- a/src/libcore/str/mod.rs
+++ b/src/libcore/str/mod.rs
@@ -2085,8 +2085,8 @@ impl str {
     /// let len = "foo".len();
     /// assert_eq!(3, len);
     ///
-    /// let len = "ƒoo".len(); // fancy f!
-    /// assert_eq!(4, len);
+    /// assert_eq!("ƒoo".len(), 4); // fancy f!
+    /// assert_eq!("ƒoo".chars().count(), 3);
     /// ```
     #[stable(feature = "rust1", since = "1.0.0")]
     #[inline]