Use PcdSerializable in TryFrom impl for Pcd

This commit is contained in:
Sosthene 2025-06-24 17:11:21 +02:00 committed by Nicolas Cantu
parent 132565e0b5
commit f8b46420c8

View File

@ -234,9 +234,10 @@ impl TryFrom<Value> for Pcd {
fn try_from(value: Value) -> Result<Self> { fn try_from(value: Value) -> Result<Self> {
let as_object = value.as_object().ok_or_else(|| Error::msg("Pcd must be an object"))?; let as_object = value.as_object().ok_or_else(|| Error::msg("Pcd must be an object"))?;
let map: Result<BTreeMap<String, Vec<u8>>> = as_object.iter().map(|(key, value)| { let map: Result<BTreeMap<String, Vec<u8>>> = as_object.into_iter().map(|(key, value)| {
let serialized = crate::serialization::ciborium_serialize(value)?; // Use the trait method instead of manual serialization
Ok((key.clone(), serialized)) let compressed = value.serialize_to_pcd()?;
Ok((key.clone(), compressed))
}).collect(); }).collect();
Ok(Pcd(map?)) Ok(Pcd(map?))
@ -247,9 +248,10 @@ impl TryFrom<BTreeMap<String, FileBlob>> for Pcd {
type Error = Error; type Error = Error;
fn try_from(file_blob_map: BTreeMap<String, FileBlob>) -> Result<Self> { fn try_from(file_blob_map: BTreeMap<String, FileBlob>) -> Result<Self> {
let map: Result<BTreeMap<String, Vec<u8>>> = file_blob_map.iter().map(|(key, value)| { let map: Result<BTreeMap<String, Vec<u8>>> = file_blob_map.into_iter().map(|(key, value)| {
let serialized = crate::serialization::ciborium_serialize(value)?; // Use the trait method instead of manual serialization
Ok((key.clone(), serialized)) let compressed = value.serialize_to_pcd()?;
Ok((key, compressed))
}).collect(); }).collect();
Ok(Pcd(map?)) Ok(Pcd(map?))