overview/
overview.rs

1use libesedb::EseDb;
2
3fn main() {
4    let filename = std::env::args()
5        .nth(1)
6        .expect("specify path to .esedb file");
7    let db = EseDb::open(&filename).unwrap();
8    println!("Database Overview ({}):", filename);
9    for table in db.iter_tables().unwrap() {
10        let table = table.unwrap();
11        println!(
12            "  {} [{:?}]",
13            table.name().unwrap(),
14            table
15                .iter_columns()
16                .unwrap()
17                .map(|c| c.unwrap().name().unwrap())
18                .collect::<Vec<String>>()
19                .join(", "),
20        );
21        for record in table.iter_records().unwrap() {
22            let record = record.unwrap();
23            for i in 0..record.count_values().unwrap() {
24                println!(
25                    "  ├ T={:?} L={}, M={} V={:?}",
26                    table.column(i).unwrap().variant().unwrap(),
27                    record.is_long(i).unwrap(),
28                    record.is_multi(i).unwrap(),
29                    record.value(i).unwrap(),
30                );
31            }
32        }
33    }
34}