MCPcopy Create free account
hub / github.com/bytecodealliance/wasmtime / serialize

Method serialize

cranelift/entity/src/map.rs:318–335  ·  view source on GitHub ↗
(&self, serializer: S)

Source from the content-addressed store, hash-verified

316 V: Clone + PartialEq + Serialize,
317{
318 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
319 where
320 S: Serializer,
321 {
322 // TODO: bincode encodes option as "byte for Some/None" and then optionally the content
323 // TODO: we can actually optimize it by encoding manually bitmask, then elements
324 let mut elems_cnt = self.elems.len();
325 while elems_cnt > 0 && self.elems[elems_cnt - 1] == self.default {
326 elems_cnt -= 1;
327 }
328 let mut seq = serializer.serialize_seq(Some(1 + elems_cnt))?;
329 seq.serialize_element(&Some(self.default.clone()))?;
330 for e in self.elems.iter().take(elems_cnt) {
331 let some_e = Some(e);
332 seq.serialize_element(if *e == self.default { &None } else { &some_e })?;
333 }
334 seq.end()
335 }
336}
337
338#[cfg(feature = "enable-serde")]

Callers

nothing calls this directly

Calls 5

lenMethod · 0.45
cloneMethod · 0.45
takeMethod · 0.45
iterMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected