jfsm 0.1.5

A command-line tool to read file system metadata then return it in JSON format (output and errors).
Documentation
use serde::{Deserialize, Serialize};
use chrono::{DateTime, Utc, TimeZone};
use crate::raw::RawMetadata;

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct TimeMetadata {
    pub atimeiso: String,
    pub mtimeiso: String,
    pub ctimeiso: String,
}

impl TimeMetadata {
    pub fn from_raw(raw: &RawMetadata) -> Self {
        // Convert timestamps to ISO format
        let atime_dt: DateTime<Utc> = Utc.timestamp_opt(raw.atime, 0).unwrap();
        let mtime_dt: DateTime<Utc> = Utc.timestamp_opt(raw.mtime, 0).unwrap();
        let ctime_dt: DateTime<Utc> = Utc.timestamp_opt(raw.ctime, 0).unwrap();
        
        TimeMetadata {
            atimeiso: atime_dt.to_rfc3339(),
            mtimeiso: mtime_dt.to_rfc3339(),
            ctimeiso: ctime_dt.to_rfc3339(),
        }
    }
}