daaki-message 0.2.0

RFC 5322 email message parser and builder
Documentation
#![allow(clippy::unwrap_used)]

use daaki_message::*;

#[test]
fn test_common_traits() {
    // Check that types are Clone
    #[allow(clippy::redundant_clone)]
    {
        let pe = ParsedEmail::default();
        let _ = pe.clone();
        let oe = OutgoingEmail::default();
        let _ = oe.clone();
        let dt = DateTime::now();
        let _ = dt.clone();
    }

    // Check that types are Debug
    println!("{:?}", ParsedEmail::default());
    println!("{:?}", DateTime::now());

    // Check that types are PartialEq
    let pe1 = ParsedEmail::default();
    let pe2 = ParsedEmail::default();
    let _ = pe1 == pe2;

    // Check equality
    let mid1 = MessageId::new("test@example.com").unwrap();
    let mid2 = MessageId::new("test@example.com").unwrap();
    assert_eq!(mid1, mid2);
}

#[test]
fn test_hash_traits() {
    use std::collections::HashSet;

    let mid = MessageId::new("test@example.com").unwrap();
    let mut set = HashSet::new();
    set.insert(mid.clone());
    assert!(set.contains(&mid));

    let hn = HeaderName::new("Subject").unwrap();
    let mut hnset = HashSet::new();
    hnset.insert(hn.clone());
    assert!(hnset.contains(&hn));
}

#[test]
fn test_ord_traits() {
    let dt1 = DateTime::new(2025, 1, 1, 0, 0, 0, 0);
    let dt2 = DateTime::new(2025, 1, 2, 0, 0, 0, 0);
    let _ = dt1 < dt2;

    let hn1 = HeaderName::new("Aaa").unwrap();
    let hn2 = HeaderName::new("Zzz").unwrap();
    let _ = hn1 < hn2;
}