parse/
parse.rs

1use cdtext::CDText;
2
3fn main() {
4    let Some(filename) = std::env::args().skip(1).next() else {
5        eprintln!("No filename provided!");
6
7        std::process::exit(1);
8    };
9
10    let data = match std::fs::read(filename) {
11        Ok(data) => data,
12        Err(e) => {
13            eprintln!("Failed to read the file: {e:?}");
14
15            std::process::exit(1);
16        }
17    };
18
19    let cdtext = CDText::from_data_with_length(&data);
20
21    let data: Vec<cdtext::CDTextEntry> = cdtext.parse();
22
23    for i in data {
24        let displayable_track = match i.track_number {
25            cdtext::CDTextTrackNumber::WholeAlbum => {
26                format!("Album")
27            },
28            cdtext::CDTextTrackNumber::Track(nr) => {
29                format!("Track #{nr}")
30            },
31        };
32
33        println!("{displayable_track}: {:?}: {:?}", i.entry_type, i.data);
34    }
35}