Added constructors.
[ocaml-bitstring.git] / bitmatch.mli
index 4f58039..d2afc30 100644 (file)
@@ -1,7 +1,9 @@
 (* Bitmatch library.
- * $Id: bitmatch.mli,v 1.4 2008-04-01 10:58:53 rjones Exp $
+ * $Id: bitmatch.mli,v 1.5 2008-04-01 17:05:37 rjones Exp $
  *)
 
+exception Construct_failure of string * string * int * int
+
 type bitstring = string * int * int
 
 val empty_bitstring : bitstring
@@ -16,7 +18,23 @@ val bitstring_of_file : string -> bitstring
 
 val hexdump_bitstring : out_channel -> bitstring -> unit
 
+val bitstring_length : bitstring -> int
+
+module Buffer : sig
+  type t
+  val create : unit -> t
+  val contents : t -> bitstring
+  val add_bits : t -> string -> int -> unit
+  val add_bit : t -> bool -> unit
+  val add_byte : t -> int -> unit
+end
+
+val debug : bool ref
+
 (**/**)
+(* Private functions, called from generated code.  Do not use
+ * these directly - they are not safe.
+ *)
 
 val extract_bitstring : string -> int -> int -> int -> bitstring * int * int
 
@@ -29,3 +47,11 @@ val extract_char_unsigned : string -> int -> int -> int -> int * int * int
 val extract_int_be_unsigned : string -> int -> int -> int -> int * int * int
 
 val extract_int32_be_unsigned : string -> int -> int -> int -> int32 * int * int
+
+val extract_int64_be_unsigned : string -> int -> int -> int -> int64 * int * int
+
+val construct_bit : Buffer.t -> bool -> int -> unit
+
+val construct_char_unsigned : Buffer.t -> int -> int -> exn -> unit
+
+val construct_int64_be_unsigned : Buffer.t -> int64 -> int -> exn -> unit