aboutsummaryrefslogtreecommitdiffstats
path: root/src/transport/wire.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/wire.rs')
-rw-r--r--src/transport/wire.rs17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/transport/wire.rs b/src/transport/wire.rs
index 3f7736d..d1ac14d 100644
--- a/src/transport/wire.rs
+++ b/src/transport/wire.rs
@@ -14,7 +14,7 @@ use super::{EncodedMessage, MessageKind, ParsedMessage};
/// The wire format's version, the first byte of every payload. Bump it with every change
/// to a message type or a codec (`golden_bytes` fails then).
-pub(crate) const VERSION: u8 = 29;
+pub(crate) const VERSION: u8 = 30;
/// What the second byte of a payload says.
fn tag(kind: MessageKind) -> u8 {
@@ -166,6 +166,19 @@ pub(crate) mod codec {
}
}
+ /// 8 bytes (`EpochTag::prefix`).
+ pub(crate) mod bytes8 {
+ use super::*;
+
+ pub(crate) fn serialize<S: Serializer>(value: &[u8; 8], s: S) -> Result<S::Ok, S::Error> {
+ Bytes::new(value).serialize(s)
+ }
+
+ pub(crate) fn deserialize<'de, D: Deserializer<'de>>(d: D) -> Result<[u8; 8], D::Error> {
+ fixed(&ByteBuf::deserialize(d)?, "an epoch tag")
+ }
+ }
+
/// A 64-byte signature.
pub(crate) mod bytes64 {
use super::*;
@@ -401,7 +414,7 @@ pub(crate) fn samples() -> Vec<ParsedMessage> {
sender_run_id: [6; 16],
}),
ParsedMessage::Sync(SyncEnvelope {
- epoch,
+ epoch: crate::transport::EpochTag::of(epoch),
epoch_seq: 1,
body: SyncBody::Delta(DeltaSpec {
from: Vec::new(),