summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil Orbekk <kjetil.orbekk@gmail.com>2017-05-27 11:15:27 -0400
committerKjetil Orbekk <kjetil.orbekk@gmail.com>2017-05-27 11:15:27 -0400
commit070de88dc411f51aec4e3f33d88fd437697d3ced (patch)
tree9914b2946a0d1b130f85beffb7b629f1a77c2ebd
parentb84a25e4a62b026984cab06bc77a89d873c5d9d1 (diff)
update pattern generator
-rw-r--r--passwords.rs25
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);
}