diff options
Diffstat (limited to 'crates/shirabe/src/advisory/security_advisory.rs')
| -rw-r--r-- | crates/shirabe/src/advisory/security_advisory.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/crates/shirabe/src/advisory/security_advisory.rs b/crates/shirabe/src/advisory/security_advisory.rs index 5cb5c59..2c5a309 100644 --- a/crates/shirabe/src/advisory/security_advisory.rs +++ b/crates/shirabe/src/advisory/security_advisory.rs @@ -7,6 +7,14 @@ use shirabe_semver::constraint::AnyConstraint; use crate::advisory::IgnoredSecurityAdvisory; use crate::advisory::PartialSecurityAdvisory; +/// Matches PHP's `format(DATE_RFC3339)`, e.g. "2020-01-01T00:00:00+00:00". +fn serialize_date_rfc3339<S: serde::Serializer>( + dt: &DateTime<Utc>, + serializer: S, +) -> Result<S::Ok, S::Error> { + serializer.serialize_str(&dt.format("%Y-%m-%dT%H:%M:%S%:z").to_string()) +} + #[derive(Debug, Clone, serde::Serialize)] #[serde(rename_all = "camelCase")] pub struct SecurityAdvisory { @@ -15,6 +23,7 @@ pub struct SecurityAdvisory { pub title: String, pub cve: Option<String>, pub link: Option<String>, + #[serde(serialize_with = "serialize_date_rfc3339")] pub reported_at: DateTime<Utc>, pub sources: Vec<IndexMap<String, String>>, pub severity: Option<String>, |
