snapchat-log-parser 0.4.0

A simple crate to parse Snapchat chat logs
Documentation
use crate::types::*;
use lazy_static::lazy_static;
use chrono::{DateTime, Utc, NaiveDate, NaiveTime, NaiveDateTime};

lazy_static!(
    static ref DATA: SnapchatData = SnapchatData {
        saved_recieved: vec![
            Message::Recieved {
                from: String::from("Felix422"),
                media_type: MediaType::Text,
                created_at: DateTime::<Utc>::from_utc(
                    NaiveDateTime::new(
                        NaiveDate::from_ymd(2021, 1, 1),
                        NaiveTime::from_hms(12, 0, 0),
                    ),
                    Utc
                ),
                text: Some(String::from("Test Message"))
            }
        ],
        saved_sent: vec![
            Message::Sent {
                to: String::from("Felix422"),
                media_type: MediaType::Text,
                created_at: DateTime::<Utc>::from_utc(
                    NaiveDateTime::new(
                        NaiveDate::from_ymd(2021, 1, 1),
                        NaiveTime::from_hms(12, 0, 0),
                    ),
                    Utc
                ),
                text: Some(String::from("Test Message"))
            }
        ]
    };
);

#[test]
fn parse_logs_from_str() {
    let json = r#"
        {
            "Received Saved Chat History": [{"From": "Felix422", "Media Type": "TEXT", "Created": "2021-01-01 12:00:00 UTC", "Text": "Test Message"}],
            "Sent Saved Chat History": [{"To": "Felix422", "Media Type": "TEXT", "Created": "2021-01-01 12:00:00 UTC", "Text": "Test Message"}]
        }
    "#;
    let parsed_data = SnapchatData::from_str(json).unwrap();
    assert_eq!(parsed_data, *DATA)
}

#[test]
fn getters() {
    assert_eq!(DATA.saved_recieved[0].recipient(), String::from("Felix422"));
    assert_eq!(DATA.saved_recieved[0].media_type(), MediaType::Text);
    assert_eq!(DATA.saved_recieved[0].created_at(), DateTime::<Utc>::from_utc(
        NaiveDateTime::new(
            NaiveDate::from_ymd(2021, 1, 1),
            NaiveTime::from_hms(12, 0, 0),
        ),
        Utc
    ));
    assert_eq!(DATA.saved_recieved[0].text(), Some(String::from("Test Message")));
}