pub trait StableHeap {
fn heap_to_bytes(&self) -> Vec<u8>;
fn heap_from_bytes(&mut self, bytes: &[u8]);
}
pub fn to_bytes<T: ?Sized + serde::Serialize>(value: &T) -> Vec<u8> {
let mut bytes = vec![];
#[allow(clippy::unwrap_used)] ciborium::ser::into_writer(value, &mut bytes).unwrap();
bytes
}
pub fn from_bytes<T: serde::de::DeserializeOwned>(bytes: &[u8]) -> T {
#[allow(clippy::expect_used)] ciborium::de::from_reader(bytes).expect("deserialization must succeed.")
}