Expand description
Library to read and write ADIF formated files
licensed under CC BY-SA 4.0, To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/
Author: Andreas, df1asc@darc.de
§Example
use std::fs;
use adif_io::{DeserializeADI, Doc};
fn main() {
let content = fs::read_to_string("test_data/big_testfile_1000.adi").expect("error reading ADI file: {err}");
let mut doc = Doc::new();
doc.deserialize_adi(&content).expect("could not deserialize from ADI");
// Header info from file
let header = doc.header();
println!("Comment : {}", header.comment());
println!("Prog ID : {}", header.program_id());
println!("Prog Ver : {}", header.program_ver());
// Count QSOs and print them
println!("QSO count: {}", doc.iter_record().count());
doc.iter_record().enumerate().for_each(|(i, qso)| println!("QSO {}: {:?}", i+1, qso));
// Get a QSO and modify data
let mut qso = doc.get_record_mut(5).expect("no QSO available");
qso.insert("NOTES", "Test data".into());
// Create a `Record` and add it, case for field names does not matter
let qso = Record::from(vec![
("QSO_DATE", "20231009"),
("TIME_ON", "1245"),
("Call", "DK5XXX"),
("NAME", "Chris"), // Upper case field name inserted
]);
println!("Name: {:?}", qso.get("name").unwrap()); // Accessed field name with lower case
doc.add_record(qso);
}Structs§
- Doc
- Represents an ADIF document with header and QSO records
- Header
- Represents an ADIF header
- Record
- Represents a single ADIF QSO record
Enums§
- Type
- The ADIF types for ADI
Traits§
- DeserializeADI
- Converting QSO data from an ADI
String - SerializeADI
- Converting QSO data struct to ADI
String