diff options
author | Kjetil Orbekk <kjetil.orbekk@gmail.com> | 2017-05-27 11:15:27 -0400 |
---|---|---|
committer | Kjetil Orbekk <kjetil.orbekk@gmail.com> | 2017-05-27 11:15:27 -0400 |
commit | 070de88dc411f51aec4e3f33d88fd437697d3ced (patch) | |
tree | 9914b2946a0d1b130f85beffb7b629f1a77c2ebd /passwords.rs | |
parent | b84a25e4a62b026984cab06bc77a89d873c5d9d1 (diff) |
update pattern generator
Diffstat (limited to 'passwords.rs')
-rw-r--r-- | passwords.rs | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/passwords.rs b/passwords.rs index 533e282..db2fd9e 100644 --- a/passwords.rs +++ b/passwords.rs @@ -1,36 +1,31 @@ use std::io::{self, Write}; use std::iter; -fn make_passwords<W: Write>(patterns: &[Vec<u8>], - buffer: &mut Vec<u8>, - i: usize, - writer: &mut W) { +fn make_passwords<W: Write>(patterns: &[Vec<u8>], buffer: &mut Vec<u8>, i: usize, writer: &mut W) { if i == patterns.len() { writer.write(&buffer).unwrap(); } else { for c in patterns[i].iter() { buffer[i] = *c; - make_passwords(patterns, buffer, i+1, writer); + make_passwords(patterns, buffer, i + 1, writer); } } } fn main() { - let range = |a, b| { - (a as u8 .. b as u8 + 1).collect::<Vec<_>>() - }; + let range = |a, b| (a as u8..b as u8 + 1).collect::<Vec<_>>(); - let patterns: Vec<Vec<u8>> = vec!( + let patterns: Vec<Vec<u8>> = vec![ range('a', 'z'), range('1', '9'), range('a', 'z'), range('a', 'z'), - range('a', 'z'), - ); + range('a', 'z') + ]; - let mut buffer: Vec<u8> = vec!(0; patterns.len() + 1); - buffer[patterns.len()] = '\n' as u8; + let mut buffer: Vec<u8> = vec!(0; patterns.len() + 1); + buffer[patterns.len()] = '\n' as u8; - let mut writer = io::BufWriter::new(io::stdout()); - make_passwords(&patterns, &mut buffer, 0, &mut writer); + let mut writer = io::BufWriter::new(io::stdout()); + make_passwords(&patterns, &mut buffer, 0, &mut writer); } |