X-Git-Url: https://git.ralfj.de/rust-101.git/blobdiff_plain/832768ac8f69b436c1f90ad7a2f01af25091599a..cc52afa7f2b54d29870ff16f1f11970dd38c1940:/src/part14.rs?ds=inline diff --git a/src/part14.rs b/src/part14.rs index b2d32f9..45044af 100644 --- a/src/part14.rs +++ b/src/part14.rs @@ -95,7 +95,7 @@ pub mod rgrep { // We also import some other pieces that we will need. extern crate docopt; use self::docopt::Docopt; - use part12::{run, Options, OutputMode}; + use part13::{run, Options, OutputMode}; use std::process; // The `USAGE` string documents how the program is to be called. It's written in a format that `docopt` can parse. @@ -131,8 +131,8 @@ Options: //@ encoded string, that is, a bunch of bytes in memory (`[u8]`) that are valid according of UTF-8. `str` is unsized. `&str` //@ stores the address of the character data, and their length. String literals like "this one" are //@ of type `&'static str`: They point right to the constant section of the binary, so - //@ However, the borrow is valid for as long as the program runs, hence it has lifetime `'static`. Calling - //@ `to_string` will copy the string data into an owned buffer on the heap, and thus convert it to `String`. + //@ the borrow is valid for the entire program. The bytes pointed to by `pattern`, on the other hand, are owned by someone else, + //@ and we call `to_string` on it to copy the string data into a buffer on the heap that we own. let mode = if count { OutputMode::Count } else if sort {