# roaring.iceberg_dv

> A module of roaring's API.

Apache Iceberg "deletion vector v1" blob framing (https://iceberg.apache.org/puffin-spec/#deletion-vector-v1-blob-type).

4 bytes            length of (magic + vector), big-endian
    4 bytes            magic: D1 D3 39 64
    <length - 4> bytes the 64-bit portable Roaring vector
    4 bytes            CRC-32 (standard, as in gzip) over (magic + vector),
                       big-endian

Row positions in a data file are `UInt64`, so the vector is a `Bitmap64`.

## Functions

### `encode_iceberg_dv`

```mojo
def encode_iceberg_dv(bitmap: Bitmap64) -> List[UInt8]
```

Encode `bitmap` as a framed Iceberg deletion-vector v1 blob.

### `decode_iceberg_dv`

```mojo
def decode_iceberg_dv[origin: Origin[mut=origin.mut], //](data: Span[UInt8, origin]) -> Bitmap64
```

Decode and verify a framed Iceberg deletion-vector v1 blob, raising on a length, magic, or CRC-32 mismatch.
