Use PcdSerializable in TryFrom impl for Pcd
This commit is contained in:
parent
132565e0b5
commit
f8b46420c8
14
src/pcd.rs
14
src/pcd.rs
@ -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?))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user