]> git.lizzy.rs Git - rust.git/blobdiff - src/doc/trpl/pointers.md
rollup merge of #21105: csouth3/kill-box-import
[rust.git] / src / doc / trpl / pointers.md
index 67a4d64d3e84ee4deb9dbe856b2b78eb8f9e476e..6832d75245e5cc9ebf51ba6434af0ce52cd94c79 100644 (file)
@@ -711,11 +711,10 @@ fn main() {
 This gives you flexibility without sacrificing performance.
 
 You may think that this gives us terrible performance: return a value and then
-immediately box it up ?! Isn't that the worst of both worlds? Rust is smarter
-than that. There is no copy in this code. `main` allocates enough room for the
-`box`, passes a pointer to that memory into `foo` as `x`, and then `foo` writes
-the value straight into that pointer. This writes the return value directly into
-the allocated box.
+immediately box it up ?! Isn't this pattern the worst of both worlds? Rust is
+smarter than that. There is no copy in this code. `main` allocates enough room
+for the `box`, passes a pointer to that memory into `foo` as `x`, and then
+`foo` writes the value straight into the `Box<T>`.
 
 This is important enough that it bears repeating: pointers are not for
 optimizing returning values from your code. Allow the caller to choose how they