summaryrefslogtreecommitdiffstats
path: root/src/transport/wire.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/wire.rs')
-rw-r--r--src/transport/wire.rs19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/transport/wire.rs b/src/transport/wire.rs
index 3c80b11..a0e0f20 100644
--- a/src/transport/wire.rs
+++ b/src/transport/wire.rs
@@ -233,18 +233,23 @@ pub(crate) mod codec {
}
}
- /// An Automerge sync message, in Automerge's own encoding.
+ /// An Automerge sync message, in Automerge's own encoding (left encoded:
+ /// `SyncPayload`).
pub(crate) mod sync_message {
use super::*;
- use automerge::sync::Message;
+ use crate::transport::SyncPayload;
- pub(crate) fn serialize<S: Serializer>(value: &Message, s: S) -> Result<S::Ok, S::Error> {
- Bytes::new(&value.clone().encode()).serialize(s)
+ pub(crate) fn serialize<S: Serializer>(
+ value: &SyncPayload,
+ s: S,
+ ) -> Result<S::Ok, S::Error> {
+ Bytes::new(&value.0).serialize(s)
}
- pub(crate) fn deserialize<'de, D: Deserializer<'de>>(d: D) -> Result<Message, D::Error> {
- Message::decode(&ByteBuf::deserialize(d)?)
- .map_err(|error| D::Error::custom(format!("Automerge decode failed: {error:?}")))
+ pub(crate) fn deserialize<'de, D: Deserializer<'de>>(
+ d: D,
+ ) -> Result<SyncPayload, D::Error> {
+ Ok(SyncPayload(ByteBuf::deserialize(d)?.into_vec().into()))
}
}