aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
blob: 920aee2ebda43a7b1b99eea93958c7d4dc383d94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use std::env;
use std::fs;
use std::io::Read;

pub mod tree;
pub mod bits;

use tree::Tree;
use bits::BitSet;

fn main() {
    let file_path = env::args().nth(1).unwrap();

    let f = fs::File::open(file_path).unwrap();
    let data: Vec<u8> = f.bytes().map(|x| x.unwrap()).collect();

    let tree = Tree::from_data(&data);
    tree.put();

    let bitmap = tree.to_bit_map();
    for (k, v) in bitmap.iter() {
        println!("{:4} {:?}", format!("{:?}", *k as char), v);
    }

    let mut bitset = BitSet::new();
    for byte in data {
        bitset.concat(&bitmap[&byte]);
    }
    println!("{:?}", bitset);
}