///|
fn main raise {
  let data = b"snapshot over a fragmented transport"
  let cid = @cid.cid_from_content(
    @cid.RAW_CODEC,
    @cid.Sha2_256,
    data,
    @cid.sha2_provider(),
    @cid.Limits::default(),
  ).unwrap()
  let bytes = @car.encode(@car.Header::new([cid]), [@car.Block::new(cid, data)])
  let decoder = @car.Decoder::new()
  let mut pos = 0
  let mut verified = 0
  while pos < bytes.length() {
    let end = pos + (bytes.length() - pos).min(7)
    for event in decoder.feed(bytes[pos:end]) {
      match event {
        Header(header) => println("snapshot roots: \{header.roots().length()}")
        Block(block, _) => {
          block.verify()
          verified += 1
        }
      }
    }
    pos = end
  }
  decoder.finish()
  println("stream: \{verified} verified block, no retained archive")
}