diff --git a/ch10/extract_fn b/ch10/extract_fn deleted file mode 100755 index 847d90d..0000000 Binary files a/ch10/extract_fn and /dev/null differ diff --git a/ch10/extract_fn.rs b/ch10/extract_fn.rs deleted file mode 100644 index 5995935..0000000 --- a/ch10/extract_fn.rs +++ /dev/null @@ -1,21 +0,0 @@ -fn largest(list: &[i32]) -> &i32 { - let mut largest = &list[0]; - - for num in list { - if num > largest { - largest = num; - } - } - - largest -} - -fn main() { - let number_list = vec![30, 52, 12, 69, 23, 50]; - let large = largest(&number_list); - println!("Largest: {large}"); - - let number_list = vec![130, 52, 12, 69, 23, 50]; - let large = largest(&number_list); - println!("Largest: {large}"); -} diff --git a/ch10/lifetime_hypotheses b/ch10/lifetime_hypotheses deleted file mode 100755 index 80ca7e0..0000000 Binary files a/ch10/lifetime_hypotheses and /dev/null differ diff --git a/ch10/lifetime_hypotheses.rs b/ch10/lifetime_hypotheses.rs deleted file mode 100644 index cb7a050..0000000 --- a/ch10/lifetime_hypotheses.rs +++ /dev/null @@ -1,22 +0,0 @@ -use std::io; - -fn longest<'a>(x: &'a str, y: &'a str) -> &'a str { - if x.len() > y.len() { x } else { y } -} - -fn brap<'b>(x: &'b str, y: &str) -> &'b str { - if x.len() > y.len() { x } else { "henkieeeeee" } -} - -fn main() { - let stronk = String::from("stronkman"); - - let ln; - { - let stonks = "stonks"; - let mut inp = String::new(); - io::stdin().read_line(&mut inp).expect("Please input a name"); - ln = longest(&inp, brap(stronk.as_str(), stonks)); - } - println!("The longest of them all: {}", ln); -} diff --git a/ch10/trait_blanket_implementation b/ch10/trait_blanket_implementation deleted file mode 100755 index e1db53a..0000000 Binary files a/ch10/trait_blanket_implementation and /dev/null differ diff --git a/ch10/trait_blanket_implementation.rs b/ch10/trait_blanket_implementation.rs deleted file mode 100644 index 7c93b3f..0000000 --- a/ch10/trait_blanket_implementation.rs +++ /dev/null @@ -1,29 +0,0 @@ -trait Named { - fn say_name(&self) -> String; -} - -trait Bold { - fn write_bold(&self); -} - -impl Bold for T { - fn write_bold(&self) { - println!("!bold {}", self.say_name()) - } -} - -struct Person { - name: String, -} - -impl Named for Person { - fn say_name(&self) -> String { - self.name.clone() - } -} - -fn main() { - let p = Person{name: String::from("Jasper")}; - - p.write_bold(); -} diff --git a/ch11/adder/Cargo.lock b/ch11/adder/Cargo.lock deleted file mode 100644 index efe4e14..0000000 --- a/ch11/adder/Cargo.lock +++ /dev/null @@ -1,7 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "adder" -version = "0.1.0" diff --git a/ch11/adder/Cargo.toml b/ch11/adder/Cargo.toml deleted file mode 100644 index 9a5826a..0000000 --- a/ch11/adder/Cargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "adder" -version = "0.1.0" -edition = "2024" - -[dependencies] diff --git a/ch11/adder/src/lib.rs b/ch11/adder/src/lib.rs deleted file mode 100644 index 818a362..0000000 --- a/ch11/adder/src/lib.rs +++ /dev/null @@ -1,31 +0,0 @@ -pub fn add(left: u64, right: u64) -> u64 { - left + right -} - -#[derive(Debug)] -struct Rectangle { - width: u32, - height: u32, -} - -impl Rectangle { - fn can_hold(&self, other: &Rectangle) -> bool { - self.width >= other.width && self.height >= other.height - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn explore() { - let result = add(2, 2); - assert_eq!(result, 4); - } - - #[test] - fn another() { - panic!("Fail!") - } -} diff --git a/ch12-io-project/minigrep/Cargo.lock b/ch12-io-project/minigrep/Cargo.lock deleted file mode 100644 index 1511dd5..0000000 --- a/ch12-io-project/minigrep/Cargo.lock +++ /dev/null @@ -1,7 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "minigrep" -version = "0.1.0" diff --git a/ch12-io-project/minigrep/Cargo.toml b/ch12-io-project/minigrep/Cargo.toml deleted file mode 100644 index b8302ae..0000000 --- a/ch12-io-project/minigrep/Cargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "minigrep" -version = "0.1.0" -edition = "2024" - -[dependencies] diff --git a/ch12-io-project/minigrep/output.txt b/ch12-io-project/minigrep/output.txt deleted file mode 100644 index 5b34572..0000000 --- a/ch12-io-project/minigrep/output.txt +++ /dev/null @@ -1 +0,0 @@ -To tell your name the livelong day diff --git a/ch12-io-project/minigrep/poem.txt b/ch12-io-project/minigrep/poem.txt deleted file mode 100644 index 8707527..0000000 --- a/ch12-io-project/minigrep/poem.txt +++ /dev/null @@ -1,9 +0,0 @@ -I'm nobody! Who are you? -Are you nobody, too? -Then there's a pair of us - don't tell! -They'd banish us, you know. - -How dreary to be somebody! -How public, like a frog -To tell your name the livelong day -To an admiring bog! diff --git a/ch12-io-project/minigrep/src/lib.rs b/ch12-io-project/minigrep/src/lib.rs deleted file mode 100644 index f43d5c7..0000000 --- a/ch12-io-project/minigrep/src/lib.rs +++ /dev/null @@ -1,55 +0,0 @@ -pub fn search<'a>(query: &str, contents: &'a str) -> Vec<&'a str> { - let mut results = Vec::new(); - - for line in contents.lines() { - if line.contains(query) { - results.push(line); - } - } - - results -} - -pub fn search_case_insensitive<'a>(query: &str, contents: &'a str) -> Vec<&'a str> { - let mut results = Vec::new(); - let query = query.to_lowercase(); - - for line in contents.lines() { - if line.to_lowercase().contains(&query) { - results.push(line); - } - } - - results -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn case_sensitive() { - let query = "duct"; - let contents = "\ -Rust: -safe, fast, productive. -Pick three. -Duct tape. - "; - - assert_eq!(vec!["safe, fast, productive."], search(query, contents)); - } - - #[test] - fn case_insensitive() { - let query = "rUsT"; - let contents = "\ -Rust: -safe, fast, productive. -Pick three. -Trust me. - "; - - assert_eq!(vec!["Rust:", "Trust me."], search_case_insensitive(query, contents)); - } -} diff --git a/ch12-io-project/minigrep/src/main.rs b/ch12-io-project/minigrep/src/main.rs deleted file mode 100644 index cade4a3..0000000 --- a/ch12-io-project/minigrep/src/main.rs +++ /dev/null @@ -1,55 +0,0 @@ -use std::env; -use std::fs; -use std::process; -use std::error::Error; - -use minigrep::{search, search_case_insensitive}; - -fn main() { - let args: Vec = env::args().collect(); - let config = Config::build(&args).unwrap_or_else(|err| { - eprintln!("problem parsing arguments: {}", err); - process::exit(1); - }); - - if let Err(e) = run(config) { - eprintln!("problem running program: {}", e); - process::exit(1); - } -} - -struct Config { - query: String, - file_path: String, - ignore_case: bool, -} - -impl Config { - fn build(args: &[String]) -> Result { - if args.len() < 3 { - return Err("not enough arguments"); - } - - let query = args[1].clone(); - let file_path = args[2].clone(); - let ignore_case = env::var("IGNORE_CASE").is_ok(); - - Ok(Config{ query, file_path, ignore_case }) - } -} - -fn run(config: Config) -> Result<(), Box> { - let contents = fs::read_to_string(config.file_path)?; - - let results = if config.ignore_case { - search_case_insensitive(&config.query, &contents) - } else { - search(&config.query, &contents) - }; - - for line in results { - println!("{line}"); - } - - Ok(()) -}