let mut items = Vec::new();
while !buf.is_empty() {
    let Ok((item, remainder)) = postcard::take_from_bytes(buf) else {
        break;
    };
    items.push(item);
    buf = remainder;
}