From 06d2d2f869cd4c8c48898fae28fb91d6716e35c2 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Fri, 15 May 2026 00:11:57 +0900 Subject: refactor(advisory): replace JsonSerializable with serde::Serialize --- .../src/advisory/partial_security_advisory.rs | 24 ++++++++++------------ 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'crates/shirabe/src/advisory/partial_security_advisory.rs') diff --git a/crates/shirabe/src/advisory/partial_security_advisory.rs b/crates/shirabe/src/advisory/partial_security_advisory.rs index 63fe998..cd64dc8 100644 --- a/crates/shirabe/src/advisory/partial_security_advisory.rs +++ b/crates/shirabe/src/advisory/partial_security_advisory.rs @@ -4,16 +4,25 @@ use anyhow::Result; use chrono::{DateTime, TimeZone, Utc}; use indexmap::IndexMap; use shirabe_external_packages::composer::pcre::preg::Preg; -use shirabe_php_shim::{JsonSerializable, PhpMixed, UnexpectedValueException}; +use shirabe_php_shim::{PhpMixed, UnexpectedValueException}; use shirabe_semver::constraint::constraint::Constraint; use shirabe_semver::constraint::constraint_interface::ConstraintInterface; use shirabe_semver::version_parser::VersionParser; use crate::advisory::security_advisory::SecurityAdvisory; -#[derive(Debug)] +fn serialize_constraint( + c: &Box, + serializer: S, +) -> Result { + serializer.serialize_str(&c.get_pretty_string()) +} + +#[derive(Debug, serde::Serialize)] +#[serde(rename_all = "camelCase")] pub struct PartialSecurityAdvisory { pub advisory_id: String, pub package_name: String, + #[serde(serialize_with = "serialize_constraint")] pub affected_versions: Box, } @@ -76,14 +85,3 @@ impl PartialSecurityAdvisory { Self { advisory_id, package_name, affected_versions } } } - -impl JsonSerializable for PartialSecurityAdvisory { - fn json_serialize(&self) -> PhpMixed { - use indexmap::IndexMap; - let mut data: IndexMap> = IndexMap::new(); - data.insert("advisoryId".to_string(), Box::new(PhpMixed::String(self.advisory_id.clone()))); - data.insert("packageName".to_string(), Box::new(PhpMixed::String(self.package_name.clone()))); - data.insert("affectedVersions".to_string(), Box::new(PhpMixed::String(self.affected_versions.get_pretty_string()))); - PhpMixed::Array(data) - } -} -- cgit v1.3.1