about summary refs log tree commit diff
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2016-03-26 20:35:49 +0530
committerManish Goregaokar <manishsmail@gmail.com>2016-03-26 20:35:49 +0530
commit2c4d039b762f5fc9e1d3340196dc2ca05d9bf104 (patch)
tree1b6ba2e6cb33a2c349c9fc92c5749cd57dbc1e2e
parentdcfcbaa009799e6c74dbbe0f116105ea71cf22d5 (diff)
parent6ce63fb3f1bf37004868f79beacb180283c0750e (diff)
downloadrust-2c4d039b762f5fc9e1d3340196dc2ca05d9bf104.tar.gz
rust-2c4d039b762f5fc9e1d3340196dc2ca05d9bf104.zip
Rollup merge of #32478 - xevix:docs/strings-str-unsized-types, r=steveklabnik
Add note on `str` being an unsized type in strings section of book

The book section on Rust strings mentions `&str` and `String` but does not address why `str` is not used directly. This adds a short blurb and a link to the unsized types chapter. The second draft of the book will go more in-depth on this, but this should help a bit for now. Thanks #rust for clarifying this point, and let me know if it needs rewording or different placement :smile:.

CC @steveklabnik @Kimundi
-rw-r--r--src/doc/book/strings.md6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/doc/book/strings.md b/src/doc/book/strings.md
index 5ed1f3de062..f5ebceedd36 100644
--- a/src/doc/book/strings.md
+++ b/src/doc/book/strings.md
@@ -44,6 +44,11 @@ let s = "foo\
 assert_eq!("foobar", s);
 ```
 
+Note that you normally cannot access a `str` directly, but only through a `&str`
+reference. This is because `str` is an unsized type which requires additional
+runtime information to be usable. For more information see the chapter on
+[unsized types][ut].
+
 Rust has more than only `&str`s though. A `String` is a heap-allocated string.
 This string is growable, and is also guaranteed to be UTF-8. `String`s are
 commonly created by converting from a string slice using the `to_string`
@@ -185,5 +190,6 @@ let hello_world = hello + &world;
 This is because `&String` can automatically coerce to a `&str`. This is a
 feature called ‘[`Deref` coercions][dc]’.
 
+[ut]: unsized-types.html
 [dc]: deref-coercions.html
 [connect]: ../std/net/struct.TcpStream.html#method.connect