use crate::types::memory::Memory;
use ic_stable_structures::writer::Writer;
#[allow(unused)]
use ic_stable_structures::Memory as _;
use std::mem;
pub fn write_pre_upgrade(state_bytes: &[u8], memory: &mut Memory) {
let len = state_bytes.len() as u32;
let mut writer = Writer::new(memory, 0);
writer.write(&len.to_le_bytes()).unwrap();
writer.write(state_bytes).unwrap()
}
pub fn read_post_upgrade(memory: &Memory) -> Vec<u8> {
const OFFSET: usize = mem::size_of::<u32>();
let mut state_len_bytes = [0; OFFSET];
memory.read(0, &mut state_len_bytes);
let state_len = u32::from_le_bytes(state_len_bytes) as usize;
let mut state_bytes = vec![0; state_len];
memory.read(u64::try_from(OFFSET).unwrap(), &mut state_bytes);
state_bytes
}