diff --git a/README.md b/README.md
index eb0f1dd5..8fde34e3 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
Das Buch „Die Programmiersprache Rust“ ist eine deutsche Gemeinschafts-Übersetzung
des [offiziellen Rust-Buchs][rustbook-en].
-Es enthält alle Änderungen des englischen Originals bis einschließlich zum **01.11.2023**.
+Es enthält alle Änderungen des englischen Originals bis einschließlich zum **09.11.2023**.
## [📖 > Hier online lesen < 📖][rustbook-de]
diff --git a/src/ch12-04-testing-the-librarys-functionality.md b/src/ch12-04-testing-the-librarys-functionality.md
index 20e8ff65..4a29fc32 100644
--- a/src/ch12-04-testing-the-librarys-functionality.md
+++ b/src/ch12-04-testing-the-librarys-functionality.md
@@ -41,7 +41,7 @@ Codeblock 12-15 zeigt diesen Test, der sich noch nicht kompilieren lässt.
Dateiname: src/lib.rs
-```rust,does_not_compile
+```rust,ignore,does_not_compile
# use std::error::Error;
# use std::fs;
#
@@ -51,7 +51,7 @@ Codeblock 12-15 zeigt diesen Test, der sich noch nicht kompilieren lässt.
# }
#
# impl Config {
-# pub fn new(args: &[String]) -> Result {
+# pub fn build(args: &[String]) -> Result {
# if args.len() < 3 {
# return Err("Nicht genügend Argumente");
# }
@@ -265,7 +265,7 @@ Beachte, dass dies noch nicht kompiliert.
Dateiname: src/lib.rs
-```rust,does_not_compile
+```rust,ignore,does_not_compile
# use std::error::Error;
# use std::fs;
#
@@ -275,7 +275,7 @@ Beachte, dass dies noch nicht kompiliert.
# }
#
# impl Config {
-# pub fn new(args: &[String]) -> Result {
+# pub fn build(args: &[String]) -> Result {
# if args.len() < 3 {
# return Err("Nicht genügend Argumente");
# }
@@ -335,7 +335,7 @@ dies noch nicht kompiliert werden kann.
Dateiname: src/lib.rs
-```rust,does_not_compile
+```rust,ignore,does_not_compile
# use std::error::Error;
# use std::fs;
#
@@ -345,7 +345,7 @@ dies noch nicht kompiliert werden kann.
# }
#
# impl Config {
-# pub fn new(args: &[String]) -> Result {
+# pub fn build(args: &[String]) -> Result {
# if args.len() < 3 {
# return Err("Nicht genügend Argumente");
# }
@@ -405,7 +405,7 @@ einen veränderbaren Vektor vor der `for`-Schleife erstellen und die
Dateiname: src/lib.rs
-```rust
+```rust,ignore
# use std::error::Error;
# use std::fs;
#
@@ -415,7 +415,7 @@ einen veränderbaren Vektor vor der `for`-Schleife erstellen und die
# }
#
# impl Config {
-# pub fn new(args: &[String]) -> Result {
+# pub fn build(args: &[String]) -> Result {
# if args.len() < 3 {
# return Err("Nicht genügend Argumente");
# }
@@ -511,7 +511,7 @@ den Wert `contents`, den `run` aus der Datei liest, an die Funktion `search`
Dateiname: src/lib.rs
-```rust
+```rust,ignore
# use std::error::Error;
# use std::fs;
#
@@ -521,7 +521,7 @@ den Wert `contents`, den `run` aus der Datei liest, an die Funktion `search`
# }
#
# impl Config {
-# pub fn new(args: &[String]) -> Result {
+# pub fn build(args: &[String]) -> Result {
# if args.len() < 3 {
# return Err("Nicht genügend Argumente");
# }
diff --git a/src/ch12-05-working-with-environment-variables.md b/src/ch12-05-working-with-environment-variables.md
index f4f275ce..76ae1288 100644
--- a/src/ch12-05-working-with-environment-variables.md
+++ b/src/ch12-05-working-with-environment-variables.md
@@ -32,7 +32,7 @@ beiden Tests zu verdeutlichen, wie in Codeblock 12-20 gezeigt wird.
# }
#
# impl Config {
-# pub fn new(args: &[String]) -> Result {
+# pub fn build(args: &[String]) -> Result {
# if args.len() < 3 {
# return Err("Nicht genügend Argumente");
# }
@@ -144,7 +144,7 @@ wir prüfen, ob die Zeile die Abfrage enthält.
# }
#
# impl Config {
-# pub fn new(args: &[String]) -> Result {
+# pub fn build(args: &[String]) -> Result {
# if args.len() < 3 {
# return Err("Nicht genügend Argumente");
# }
@@ -293,18 +293,18 @@ nirgendwo initialisiert haben:
Dateiname: src/lib.rs
-```rust,does_not_compile
+```rust,ignore,does_not_compile
# use std::error::Error;
# use std::fs;
#
pub struct Config {
pub query: String,
pub file_path: String,
- pub case_sensitive: bool,
+ pub ignore_case: bool,
}
#
# impl Config {
-# pub fn new(args: &[String]) -> Result {
+# pub fn build(args: &[String]) -> Result {
# if args.len() < 3 {
# return Err("Nicht genügend Argumente");
# }
@@ -319,10 +319,10 @@ pub struct Config {
# pub fn run(config: Config) -> Result<(), Box> {
# let contents = fs::read_to_string(config.file_path)?;
#
-# let results = if config.case_sensitive {
-# search(&config.query, &contents)
-# } else {
+# let results = if config.ignore_case {
# search_case_insensitive(&config.query, &contents)
+# } else {
+# search(&config.query, &contents)
# };
#
# for line in results {
@@ -401,18 +401,18 @@ Codeblock 12-22 gezeigt. Dies kompiliert noch immer nicht.
Dateiname: src/lib.rs
-```rust,does_not_compile
+```rust,ignore,does_not_compile
# use std::error::Error;
# use std::fs;
#
# pub struct Config {
# pub query: String,
# pub file_path: String,
-# pub case_sensitive: bool,
+# pub ignore_case: bool,
# }
#
# impl Config {
-# pub fn new(args: &[String]) -> Result {
+# pub fn build(args: &[String]) -> Result {
# if args.len() < 3 {
# return Err("Nicht genügend Argumente");
# }
@@ -427,10 +427,10 @@ Codeblock 12-22 gezeigt. Dies kompiliert noch immer nicht.
pub fn run(config: Config) -> Result<(), Box> {
let contents = fs::read_to_string(config.file_path)?;
- let results = if config.case_sensitive {
- search(&config.query, &contents)
- } else {
+ let results = if config.ignore_case {
search_case_insensitive(&config.query, &contents)
+ } else {
+ search(&config.query, &contents)
};
for line in results {
@@ -523,11 +523,11 @@ use std::env;
# pub struct Config {
# pub query: String,
# pub file_path: String,
-# pub case_sensitive: bool,
+# pub ignore_case: bool,
# }
#
impl Config {
- pub fn new(args: &[String]) -> Result {
+ pub fn build(args: &[String]) -> Result {
if args.len() < 3 {
return Err("Nicht genügend Argumente");
}
@@ -535,12 +535,12 @@ impl Config {
let query = args[1].clone();
let file_path = args[2].clone();
- let case_sensitive = env::var("IGNORE_CASE").is_err();
+ let ignore_case = env::var("IGNORE_CASE").is_ok();
Ok(Config {
query,
file_path,
- case_sensitive,
+ ignore_case,
})
}
}
@@ -548,10 +548,10 @@ impl Config {
# pub fn run(config: Config) -> Result<(), Box> {
# let contents = fs::read_to_string(config.file_path)?;
#
-# let results = if config.case_sensitive {
-# search(&config.query, &contents)
-# } else {
+# let results = if config.ignore_case {
# search_case_insensitive(&config.query, &contents)
+# } else {
+# search(&config.query, &contents)
# };
#
# for line in results {
@@ -692,7 +692,7 @@ To tell your name the livelong day
To an admiring bog!
```
-Ausgezeichnet, wir haben auch Zeilen mit „to“! Unser `minigrep`-Programm kann
+Ausgezeichnet, wir haben auch Zeilen mit „To“! Unser `minigrep`-Programm kann
jetzt ohne Berücksichtigung von Groß-/Kleinschreibung suchen, gesteuert durch
eine Umgebungsvariable. Jetzt weißt du, wie man Optionen verwaltet, die
entweder mit Kommandozeilenargumenten oder Umgebungsvariablen gesetzt werden.
diff --git a/src/ch12-06-writing-to-stderr-instead-of-stdout.md b/src/ch12-06-writing-to-stderr-instead-of-stdout.md
index be137d35..5158d9b5 100644
--- a/src/ch12-06-writing-to-stderr-instead-of-stdout.md
+++ b/src/ch12-06-writing-to-stderr-instead-of-stdout.md
@@ -72,14 +72,13 @@ stattdessen `eprintln!` verwenden.
fn main() {
let args: Vec = env::args().collect();
- let config = Config::new(&args).unwrap_or_else(|err| {
+ let config = Config::build(&args).unwrap_or_else(|err| {
eprintln!("Fehler beim Parsen der Argumente: {err}");
process::exit(1);
});
if let Err(e) = minigrep::run(config) {
eprintln!("Anwendungsfehler: {e}");
-
process::exit(1);
}
}