braid_types/
synced_frame.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
6pub struct SyncFno(pub u64);
7
8impl std::fmt::Display for SyncFno {
9 fn fmt(&self, fmt: &mut std::fmt::Formatter) -> std::result::Result<(), std::fmt::Error> {
10 std::fmt::Display::fmt(&self.0, fmt)
11 }
12}
13
14impl From<u64> for SyncFno {
15 fn from(val: u64) -> SyncFno {
16 SyncFno(val)
17 }
18}
19
20impl serde::Serialize for SyncFno {
24 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
25 where
26 S: serde::Serializer,
27 {
28 serializer.serialize_u64(self.0)
29 }
30}
31
32impl<'de> serde::Deserialize<'de> for SyncFno {
33 fn deserialize<D>(deserializer: D) -> std::result::Result<SyncFno, D::Error>
34 where
35 D: serde::Deserializer<'de>,
36 {
37 let val: u64 = deserializer.deserialize_u64(SyncFnoVisitor)?;
38 Ok(SyncFno(val))
39 }
40}
41
42struct SyncFnoVisitor;
43
44impl serde::de::Visitor<'_> for SyncFnoVisitor {
45 type Value = u64;
46
47 fn expecting(&self, formatter: &mut std::fmt::Formatter) -> std::fmt::Result {
48 formatter.write_str("an unsigned 64-bit integer")
49 }
50
51 fn visit_u64<E>(self, value: u64) -> std::result::Result<Self::Value, E>
52 where
53 E: serde::de::Error,
54 {
55 Ok(value)
56 }
57}