package containers

  1. Overview
  2. Docs
On This Page
  1. Bit Field
Module type
Class type

Bit Field

This module defines efficient bitfields up to 30 or 62 bits (depending on the architecture) in a relatively type-safe way.

module B = CCBitField.Make(struct end);;

let x = B.mk_field ()
let y = B.mk_field ()
let z = B.mk_field ()

let f = B.empty |> B.set x true |> B.set y true;;

assert (not (B.get z f)) ;;

assert (f |> B.set z true |> B.get z);;
exception TooManyFields

Raised when too many fields are packed into one bitfield.

exception Frozen

Raised when a frozen bitfield is modified.

val max_width : int

System-dependent maximum width for a bitfield, typically 30 or 62.

module type S = sig ... end
module Make (X : sig ... end) : S

Create a new bitfield type