module CCBitField:sig..end
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);;
#install_printer B.pp;;
module X = (val B.int ~name:"x" ~width:3 ());;
module Y = (val B.int ~name:"y" ~width:2 ());;
module Z = (val B.bool ~name:"z" ());;
let f = B.empty |> X.set 3 |> Y.set 1;;
Z.get f ;;
f |> Z.set true |> Z.get ;;
Format.printf "f: %a@." B.pp f;;
status: experimental
Since 0.13
exception TooManyFields
exception Frozen
module type EMPTY =sig..end
val max_width : intmodule type S =sig..end
module Make(X:EMPTY):S