Skip to content

Commit 5c43943

Browse files
binierakoptelov
authored andcommitted
feat(v2/manual): impl missing non human_readable serialization for types
1 parent 6b4104e commit 5c43943

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

mina-p2p-messages/src/v2/manual.rs

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,7 @@ impl<'de> Deserialize<'de> for PicklesProofProofsVerified2ReprStableV2StatementF
487487
if deserializer.is_human_readable() {
488488
deserializer.deserialize_tuple(2, V)
489489
} else {
490-
todo!()
490+
Ok(Self::ShiftedValue(Deserialize::deserialize(deserializer)?))
491491
}
492492
}
493493
}
@@ -501,7 +501,7 @@ impl Serialize for ConsensusVrfOutputTruncatedStableV1 {
501501
let base64 = base64::encode_config(&self.0, base64::URL_SAFE);
502502
base64.serialize(serializer)
503503
} else {
504-
todo!()
504+
serializer.serialize_newtype_struct("ConsensusVrfOutputTruncatedStableV1", &self.0)
505505
}
506506
}
507507
}
@@ -517,12 +517,21 @@ impl<'de> Deserialize<'de> for ConsensusVrfOutputTruncatedStableV1 {
517517
.map(ByteString::from)
518518
.map_err(|e| serde::de::Error::custom(format!("Error deserializing vrf: {e}")))
519519
} else {
520-
todo!()
520+
Deserialize::deserialize(deserializer)
521521
}
522522
.map(Self)
523523
}
524524
}
525525

526+
mod serde_protocol_ver {
527+
#[derive(serde::Serialize, serde::Deserialize)]
528+
pub struct ProtocolVersionStableV1 {
529+
pub major: crate::number::Int64,
530+
pub minor: crate::number::Int64,
531+
pub patch: crate::number::Int64,
532+
}
533+
}
534+
526535
impl<'de> Deserialize<'de> for ProtocolVersionStableV1 {
527536
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
528537
where
@@ -551,7 +560,11 @@ impl<'de> Deserialize<'de> for ProtocolVersionStableV1 {
551560
patch,
552561
})
553562
} else {
554-
todo!()
563+
serde_protocol_ver::ProtocolVersionStableV1::deserialize(deserializer).map(|s| Self {
564+
major: s.major,
565+
minor: s.minor,
566+
patch: s.patch,
567+
})
555568
}
556569
}
557570
}
@@ -565,7 +578,12 @@ impl Serialize for ProtocolVersionStableV1 {
565578
let s = format!("{}.{}.{}", *self.major, *self.minor, *self.patch);
566579
s.serialize(serializer)
567580
} else {
568-
todo!()
581+
let s = serde_protocol_ver::ProtocolVersionStableV1 {
582+
major: self.major,
583+
minor: self.minor,
584+
patch: self.patch,
585+
};
586+
s.serialize(serializer)
569587
}
570588
}
571589
}

0 commit comments

Comments
 (0)