qrz_logbook_api/
lib.rs

1//! # QRZ Logbook API Client
2//!
3//! A Rust client library for interacting with the QRZ Logbook API.
4//!
5//! ## Features
6//!
7//! - Insert QSO records
8//! - Delete QSO records  
9//! - Fetch QSO records with filtering
10//! - Get logbook status
11//! - Full ADIF support
12//! - Type-safe API with comprehensive error handling
13//!
14//! ## Example
15//!
16//! ```rust,no_run
17//! use qrz_logbook_api::{QrzLogbookClient, QsoRecord};
18//! use chrono::{NaiveDate, NaiveTime};
19//!
20//! #[tokio::main]
21//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
22//!     let client = QrzLogbookClient::new("YOUR-API-KEY", "MyApp/1.0.0 (YOURCALL)")?;
23//!     
24//!     let qso = QsoRecord::builder()
25//!         .call("W1AW")
26//!         .station_callsign("K1ABC")
27//!         .date(NaiveDate::from_ymd_opt(2024, 1, 15).unwrap())
28//!         .time_on(NaiveTime::from_hms_opt(14, 30, 0).unwrap())
29//!         .band("20m")
30//!         .mode("SSB")
31//!         .build();
32//!     
33//!     let result = client.insert_qso(&qso, false).await?;
34//!     println!("Inserted QSO with ID: {}", result.logid);
35//!     
36//!     Ok(())
37//! }
38//! ```
39
40pub mod adif;
41pub mod client;
42pub mod error;
43pub mod models;
44
45pub use client::QrzLogbookClient;
46pub use error::{QrzLogbookError, QrzLogbookResult};
47pub use models::*;