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::*;