///|
pub impl Encode for StateVector with fn encode(self, encoder) {
Write::write_var_uint(encoder, self.clocks.length().to_uint64())
for (client, clock) in self.entries() {
Write::write_var_uint(encoder, client)
Write::write_var_uint(encoder, clock.to_uint64())
}
}
///|
pub impl Decode for StateVector with fn decode(decoder) {
let count = codec_count(decoder)
let result = StateVector()
for _ in 0.. Int32 raise DecodeError {
let count = Read::read_var_uint(decoder)
guard count <= decoder.read_to_end().length().to_uint64() else {
raise InvalidData("length exceeds remaining bytes")
}
count.to_int()
}
///|
pub extend StateVector with Encode::{encode}
///|
pub extend StateVector with Decode::{decode}
///|
pub extend IdSet with Encode::{encode}
///|
pub extend IdSet with Decode::{decode}
///|
pub extend Snapshot with Encode::{encode}
///|
pub extend Snapshot with Decode::{decode}