diff --git a/.gitignore b/.gitignore index 62bd1a4..807c21c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ # Generated by Cargo # will have compiled files and executables /target/ +target # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html diff --git a/guessing_game/Cargo.toml b/guessing_game/Cargo.toml new file mode 100644 index 0000000..8273987 --- /dev/null +++ b/guessing_game/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "guessing_game" +version = "0.1.0" +authors = ["gbrochar "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +rand = "0.5.5" \ No newline at end of file diff --git a/guessing_game/src/main.rs b/guessing_game/src/main.rs new file mode 100644 index 0000000..cde116d --- /dev/null +++ b/guessing_game/src/main.rs @@ -0,0 +1,32 @@ +use std::io; +use std::cmp::Ordering; +use rand::Rng; + +fn main() { + println!("Guess the number !"); + + let secret_number = rand::thread_rng().gen_range(1, 101); + + loop { + println!("Please input your guess."); + let mut guess = String::new(); + io::stdin() + .read_line(&mut guess) + .expect("Failed to read line"); + + let guess: u32 = match guess.trim().parse() { + Ok(num) => num, + Err(_) => continue, + }; + println!("You guessed: {}", guess); + + match guess.cmp(&secret_number) { + Ordering::Less => println!("Too small!"), + Ordering::Greater => println!("Too big!"), + Ordering::Equal => { + println!("You win!"); + break; + } + } + } +} diff --git a/hello_cargo/Cargo.toml b/hello_cargo/Cargo.toml new file mode 100644 index 0000000..a2b61f1 --- /dev/null +++ b/hello_cargo/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "hello_cargo" +version = "0.1.0" +authors = ["gbrochar "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/hello_cargo/src/main.rs b/hello_cargo/src/main.rs new file mode 100644 index 0000000..e7a11a9 --- /dev/null +++ b/hello_cargo/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} diff --git a/hello_world/main b/hello_world/main new file mode 100755 index 0000000..8175a89 Binary files /dev/null and b/hello_world/main differ diff --git a/hello_world/main.rs b/hello_world/main.rs new file mode 100644 index 0000000..fbedd92 --- /dev/null +++ b/hello_world/main.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello, world!"); +} \ No newline at end of file diff --git a/rectangles/Cargo.toml b/rectangles/Cargo.toml new file mode 100644 index 0000000..27c9146 --- /dev/null +++ b/rectangles/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "rectangles" +version = "0.1.0" +authors = ["gbrochar "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/rectangles/src/main.rs b/rectangles/src/main.rs new file mode 100644 index 0000000..55fd2e6 --- /dev/null +++ b/rectangles/src/main.rs @@ -0,0 +1,29 @@ +#[derive(Debug)] +struct Rectangle { + width: u32, + height: u32, +} + +impl Rectangle { + fn area(&self) -> u32 { + self.width * self.height + } + + fn add_height(&mut self) { + self.height += 1; + } +} + +fn main() { + let mut rect1 = Rectangle { + width: 30, + height: 50, + }; + + println!( + "The area of the rectangle is {} square pixels.", + rect1.area() + ); + rect1.add_height(); + println!("{:#?}", rect1); +} \ No newline at end of file diff --git a/strlen/Cargo.toml b/strlen/Cargo.toml new file mode 100644 index 0000000..c0b7c86 --- /dev/null +++ b/strlen/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "strlen" +version = "0.1.0" +authors = ["gbrochar "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] diff --git a/strlen/src/main.rs b/strlen/src/main.rs new file mode 100644 index 0000000..c4a2607 --- /dev/null +++ b/strlen/src/main.rs @@ -0,0 +1,10 @@ +fn main() { + let s1 = String::from("hello"); + let len = calculate_length(&s1); + + println!("The length of '{}' is {}.", s1, len); +} + +fn calculate_length(s: &String) -> usize { + s.len() +} \ No newline at end of file