Module Impl.Decompress_window

module Buffer = Decompress_buffer
module Safe = Decompress_safe
type ('a, 'crc) t = {
rpos : int;
wpos : int;
size : int;
buffer : ([ Safe.ro | Safe.wo ]'a) Safe.t;
crc : Optint.t;
crc_witness : 'crc checksum;
buffer_witness : 'a Buffer.t;
}
and 'crc checksum =
| Adler32 : adler32 checksum
| Crc32 : crc32 checksum
| None : none checksum
and adler32 =
| A
and crc32 =
| B
and none =
| C
val adler32 : adler32 checksum
val crc32 : crc32 checksum
val none : none checksum
module Crc : sig ... end
val create : crc:'a Crc.t -> witness:'b Safe.Buffer.t -> ('b'a) t
val crc : ('a'b) t -> Optint.t
val reset : ('a'b) t -> ('a'b) t
val available_to_write : ('a'b) t -> int
val drop : int -> ('a'b) t -> ('a'b) t
val move : int -> ('a'b) t -> ('a'b) t
val hack : ('a'i) Safe.t -> (Safe.ro'i) Safe.t
val write : ([< `Rd | `Wr Rd ]'a) Safe.t -> int -> ([< `Rd | `Wr Wr ]'a) Safe.t -> int -> int -> ('a'b) t -> ('a'b) t
val write_char : char -> ('a'b) t -> ('a'b) t
val fill_char : char -> int -> ('a'b) t -> ('a'b) t
val sanitize : int -> ('a'b) t -> int
val (%) : int -> ('a'b) t -> int