sig
exception TooManyFields
exception Frozen
module type EMPTY = sig end
val max_width : int
module type S =
sig
type t = private int
val empty : CCBitField.S.t
type _ field_kind =
Bool : bool CCBitField.S.field_kind
| Int : int CCBitField.S.field_kind
module type FIELD =
sig
type value
val get : CCBitField.S.t -> CCBitField.S.FIELD.value
val set :
CCBitField.S.FIELD.value -> CCBitField.S.t -> CCBitField.S.t
val width : int
val name : string
val kind : CCBitField.S.FIELD.value CCBitField.S.field_kind
end
type 'a field = (module CCBitField.S.FIELD with type value = 'a)
val bool : ?name:string -> unit -> bool CCBitField.S.field
val int2 : ?name:string -> unit -> int CCBitField.S.field
val int3 : ?name:string -> unit -> int CCBitField.S.field
val int : ?name:string -> width:int -> unit -> int CCBitField.S.field
val freeze : unit -> unit
val total_width : unit -> int
type any_field =
AnyField : (module CCBitField.S.FIELD with type value = 'a) *
'a CCBitField.S.field_kind -> CCBitField.S.any_field
val iter_fields : (CCBitField.S.any_field -> unit) -> unit
val pp : Format.formatter -> CCBitField.S.t -> unit
end
module Make : functor (X : EMPTY) -> S
val all_bits_ : int -> int -> int
end