diff --git a/main.rs b/main.rs index 08de616..041447b 100755 --- a/main.rs +++ b/main.rs @@ -1,76 +1,20 @@ -#![allow(unstable)] // allow unstable libraries +// don't rust -> restart +#[macro_use] extern crate text_io; -// programm for password generation +// rust only uses few things by default ('prelude') -> add your needs! +use std::io; // use io library from the standard library - -// To-Do: -// parameters for password options -// Strength of password (number from parameter) -// not to complicated character (| l I รถ 0) - - -// crates -extern crate rand; -extern crate getopts; - - -use rand::Rng; -// use std::__rand::thread_rng; -use getopts::Options; -use std::string::String; -use std::str::FromStr; -use std::env; // use command line arguments - - -// main function -fn main() { - // get parameters - let args: Vec = env::args().collect(); - // let program = args[0].clone(); // name of program inside parameters - - let mut opts = Options::new(); // create new options objetct - opts.optopt("l", "", "set length of password", "LENGTH"); - opts.optflag("h", "help", "print this help menu"); - let matches = match opts.parse(&args[1..]) { - Ok(m) => { m } // match - Err(f) => { panic!(f.to_string()) } - }; - - - // variable for length of password - let mut pass_length: i32 = 8; - let mut password = String::new(); // assign password as empty string - let mut rng = rand::thread_rng(); // instance of thread; rng = random number generator (object) - - // variable for strength of password - let mut score: i32 = 0; // 0 -> no password/very bad password - - // assign array with (ascii) signs - let mut signs : Vec = vec![]; - - // fill vector with number of ASCII signs allowed for password - for i in 33u8..126u8 { - signs.push(i as char); - } - - // looping -> creation of password - for _ in 0..pass_length { - // choose random element from vector signs -> get ASCII signs for number - password.push(*(rng.choose(&signs).unwrap())); // * for dereference for processing - } - - // length, special character, different characters, non redundance - let length = password.len(); // get length of string - // println!("length: {}", password.len()); - - // we have a password - println!("password is: {}", password); +fn main() { + //let n: i32 = read!(); + //println!("Read in: {}", n); + //fib (n); + let n: i32 = 1; + fib (n); } +// Write a function fib which takes a single i32 argument n < 10 and returns n's Fibonacci number (also i32). -// function -fn print_usage(program: &str, opts: Options) { - let brief = format!("Usage: {} FILE [options]", program); - print!("{}", opts.usage(&brief)); +fn fib (n:i32) { + println!("{} \n", n); } diff --git a/passwordgenerator.rs b/passwordgenerator.rs index de82de2..1ad08b5 100755 --- a/passwordgenerator.rs +++ b/passwordgenerator.rs @@ -12,7 +12,7 @@ use rand::Rng; fn main() { // variable for length of password - let mut pass_length: i32 = 8; + let pass_length: i32 = 8; let mut password = String::new(); // assign password as empty string let mut rng = rand::thread_rng(); // instance of thread; rng = random number generator (object)