boox-note-parser 0.2.0

A Rust library for parsing .note files from Onyx Boox e-ink devices.
Documentation
use chrono::{DateTime, Utc};
use serde::{Deserialize, de::DeserializeOwned};

use crate::error::{Error, Result};

pub fn convert_timestamp_to_datetime(ts: u64) -> Result<DateTime<Utc>> {
    DateTime::<Utc>::from_timestamp_millis(ts as i64).ok_or_else(|| Error::InvalidTimestamp(ts))
}

pub fn parse_json<T: DeserializeOwned>(json_str: &str) -> Result<T> {
    serde_json::from_str(json_str).map_err(|e| Error::Json {
        error: e,
        json_string: json_str.to_string(),
    })
}

pub fn deserialize_color<'de, D>(deserializer: D) -> std::result::Result<u32, D::Error>
where
    D: serde::Deserializer<'de>,
{
    let color: i32 = Deserialize::deserialize(deserializer)?;
    Ok(color as u32)
}