wasm4pm-compat 26.6.8

Minimal paper-complete, feature-capped Rust process-evidence crate. Start with compatibility. Graduate to execution.
Documentation
use chrono::{DateTime, FixedOffset, NaiveDateTime};

pub fn parse_timestamp<'a>(
    time: &'a str,
    custom_format: Option<&'a str>,
    _verbose: bool,
) -> Result<DateTime<FixedOffset>, &'a str> {
    if let Some(date_format) = custom_format {
        if let Ok(dt) = DateTime::parse_from_str(time, date_format) {
            return Ok(dt);
        }
        if let Ok(dt) = NaiveDateTime::parse_from_str(time, date_format) {
            return Ok(dt.and_utc().into());
        }
    }

    if let Ok(dt) = DateTime::parse_from_rfc3339(time) {
        return Ok(dt);
    }

    if let Ok(dt) = DateTime::parse_from_str(time, "%Y-%m-%dT%H:%M:%S%z") {
        return Ok(dt);
    }

    if let Ok(dt) = DateTime::parse_from_rfc2822(time) {
        return Ok(dt);
    }

    if let Ok(dt) = NaiveDateTime::parse_from_str(time, "%F %T%.f") {
        return Ok(dt.and_utc().into());
    }

    if let Ok(dt) = NaiveDateTime::parse_from_str(time, "%FT%T%.f") {
        return Ok(dt.and_utc().into());
    }

    if let Ok(dt) = NaiveDateTime::parse_from_str(time, "%FT%T") {
        return Ok(dt.and_utc().into());
    }

    if let Ok(dt) = NaiveDateTime::parse_from_str(time, "%F %T UTC") {
        return Ok(dt.and_utc().into());
    }

    if let Ok((dt, _)) = DateTime::parse_and_remainder(time, "%Z %b %d %Y %T GMT%z") {
        return Ok(dt);
    }

    Err("Unexpected timestamp format")
}