1use iso8211::DataDescriptiveFile;
2
3fn main() -> Result<(), Box<dyn std::error::Error>> {
4 let path = std::env::args().nth(1).ok_or("usage: print <path-to-iso8211-file>")?;
5
6 let ddf = DataDescriptiveFile::read(path)?;
7
8 println!("\nData Descriptive Record:");
9 println!(" File Control Field:");
10 println!(" Tag Pairs:");
11 for tp in ddf.data_descriptive_record().file_control_field().tag_pairs() {
12 println!(" {} -> {}", tp.0, tp.1);
13 }
14
15 println!(" Data Descriptive Fields:");
16 for f in ddf.data_descriptive_record().data_descriptive_fields() {
17 println!(" Field Controls:");
18 println!(
19 " Data Structure: {}",
20 f.field_controls().data_structure()
21 );
22 println!(" Data Type: {}", f.field_controls().data_type());
23 println!(
24 " Escape Sequence: {}",
25 f.field_controls().escape_sequence()
26 );
27
28 println!(" Field Name: {}", f.field_name());
29
30 println!(" Array Descriptor: {}", f.array_descriptor());
31
32 println!(" Format Controls:");
33 for fc in f.format_controls().formats() {
34 println!(" Format: {}", fc);
35 }
36 }
37
38 for dr in ddf.data_records() {
39 println!("\nData Record:");
40 for df in dr.data_fields() {
41 println!(" Data Field: {} bytes", df.user_data().len());
42 }
43 }
44
45 Ok(())
46}