X-Git-Url: https://piware.de/gitweb/?p=learn-rust.git;a=blobdiff_plain;f=src%2Fmain.rs;h=718ecb5f22028762b437c4b87a60dac13f99c90c;hp=441cc79a44db49e65227afdacfa575de42e96fb9;hb=f026aa1e762803c4e784f82fd3830c9f936cf8d5;hpb=80e4d9aff6de0cdeaedc8db269a18c6da91d0239 diff --git a/src/main.rs b/src/main.rs index 441cc79..718ecb5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,9 +1,11 @@ mod word_utils; +mod lib; use std::collections::HashMap; use std::io::{prelude::*, ErrorKind}; -use std::fs::File; +use std::fs::{self, File}; +use lib::*; use word_utils::{first_word, second_word}; fn test_strings() { @@ -69,13 +71,6 @@ fn test_hashmaps() { println!("collect_scores after rebuilding with doubling: {:?}", collect_scores); } -fn read_file(path: &str) -> Result { - let mut s = String::new(); - File::open(path)? - .read_to_string(&mut s)?; - Ok(s) -} - fn test_files() { if let Ok(mut f) = File::open("Cargo.toml") { let mut contents = String::new(); @@ -108,6 +103,38 @@ fn test_files() { Ok(s) => println!("Cargo.toml contents:\n{}\n-------------", s), Err(e) => println!("Could not open Cargo.toml: {:?}", e) } + + // using std API + match fs::read_to_string("Cargo.toml") { + Ok(s) => println!("Cargo.toml contents:\n{}\n-------------", s), + Err(e) => println!("Could not open Cargo.toml: {:?}", e) + } +} + +fn test_generics() { + let num_list = vec![3, 42, -7, 100, 0]; + println!("largest number: {}", largest(&num_list)); + println!("num_list: {:?}", num_list); + + let char_list = vec!['a', 'y', 'q', 'm']; + println!("largest char: {}", largest(&char_list)); + + let str_list = vec!["hello", "world", "blue", "planet"]; + println!("largest str: {}", largest(&str_list)); + println!("str_list: {:?}", str_list); + + let string_list = vec!["aaaa".to_string(), "xxxxx".to_string(), "ffff".to_string()]; + println!("largest string (with cloning): {}", largest_clone(&string_list)); + println!("largest string (with ref): {}", largest_ref(&string_list)); + println!("string_list: {:?}", string_list); + + let s1 = String::from("abcd"); + let l; + { + let s2 = "efghi"; + l = longest(&s1, s2); + } + println!("longest string: {}", l); } fn main() { @@ -115,4 +142,5 @@ fn main() { test_vectors(); test_hashmaps(); test_files(); + test_generics(); }