new programm for password generation

This commit is contained in:
Ananke 2017-06-04 19:28:59 +02:00
parent 5a945cdcb0
commit d9f48e9fcc
9 changed files with 528 additions and 40 deletions

67
match.rs Executable file
View file

@ -0,0 +1,67 @@
// match
//
// main function
fn main() {
let x = 2;
let a = 1;
match a {
b => println!("a: {} b: {}", a, b), // catches '_' 'any case'
}
match x { // more powerful than if/else
1 => println!("one"), //
2 => println!("two"),
3 => println!("three"),
4 => println!("four"),
_ => println!("something else"), // exhaustiveness checking -> error if not used
}
let number = match x { // use match for variable bindings
1 => "one", // integer converted into string
2 => "two",
3 => "three",
4 => "four",
5 => "five",
_ => "something else",
};
println!("number is: {}", number);
struct Point {
x: i32,
y: i32,
}
let origin = Point { x: 0, y: 0 }
match origin { // deconstruct compound data type
Point { x, y } => println!("({},{})", x, y),
}
}
// enmus
enum Message {
Quit,
ChangeColor(i32, i32, i32), // tulpe
Move { x: i32, y: i32 }, // struct
Write(String),
}
// funtions
fn quit() { /* ... */ }
fn change_color(r: i32, g: i32, b: i32) { /* ... */ }
fn move_cursor(x: i32, y: i32) { /* ... */ }
// process possible variants of enum with match
fn process_message(msg: Message) {
match msg {
Message::Quit => quit(),
Message::ChangeColor(r, g, b) => change_color(r, g, b),
Message::Move { x, y: new_name_for_y } => move_cursor(x, new_name_for_y),
Message::Write(s) => println!("{}", s),
};
}