Module CCBitField

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 : functor (_ : sig ... end) -> S

Create a new bitfield type