package decompress

  1. Overview
  2. Docs
include INFLATE with type error = error_g_inflate and type crc = Window.crc32
type error = error_g_inflate

Inflate error.

type crc = Window.crc32
type ('i, 'o) t

The state of the inflate algorithm. 'i and 'o are the implementation used respectively for the input and the output, see Buffer.bytes and Buffer.bigstring. The typer considers than 'i = 'o.

val pp_error : Stdlib.Format.formatter -> error -> unit

Pretty-printer of inflate error.

val pp : Stdlib.Format.formatter -> ('i, 'o) t -> unit

Pretty-printer of inflate state.

val eval : 'a -> 'a -> ('a, 'a) t -> [ `Await of ('a, 'a) t | `Flush of ('a, 'a) t | `End of ('a, 'a) t | `Error of ('a, 'a) t * error ]

eval i o t computes the state t with the input i and the output o. This function returns:

  • `Await t: the state t waits a new input, may be you use refill.
  • `Flush t: the state t completes the output, may be you use flush.
  • `End t: means that the deflate algorithm is done in your input. May be t writes something in your output. You can check with used_out.
  • `Error (t, exn): the algorithm catches an error exn.
val refill : int -> int -> ('i, 'o) t -> ('i, 'o) t

refill off len t allows the state t to use an output at off on len byte(s).

val flush : int -> int -> ('i, 'o) t -> ('i, 'o) t

flush off len t allows the state t to use an output at off on len byte(s).

val used_in : ('i, 'o) t -> int

used_in t returns how many byte(s) was used by t in the input.

val used_out : ('i, 'o) t -> int

used_out ŧ returns how many byte(s) was used by t in the output.

val write : ('i, 'o) t -> int

write t returns the size of the stream decompressed.

val to_result : 'a -> 'a -> ('a -> int) -> ('a -> int -> int) -> ('a, 'a) t -> (('a, 'a) t, error) Stdlib.result

to_result i o refill flush t is a convenience function to apply the inflate algorithm on the stream refill and call flush when the internal output is full (and need to flush).

If the compute catch an error, we returns Error exn (see INFLATE.error). Otherwise, we returns the state useless t.

val bytes : Stdlib.Bytes.t -> Stdlib.Bytes.t -> (Stdlib.Bytes.t -> int) -> (Stdlib.Bytes.t -> int -> int) -> (Stdlib.Bytes.t, Stdlib.Bytes.t) t -> ((Stdlib.Bytes.t, Stdlib.Bytes.t) t, error) Stdlib.result

Specialization of to_result with Buffer.Bytes.t.

val xfl : ('a, 'b) t -> int
val os : ('a, 'b) t -> OS.t
val mtime : ('a, 'b) t -> Optint.t
val extra : ('a, 'b) t -> string option
val name : ('a, 'b) t -> string option
val comment : ('a, 'b) t -> string option
val default : witness:'a Buffer.t -> ?wbits:int -> ('a, crc) Window.t -> ('a, 'a) t

default makes a new state t.

OCaml

Innovation. Community. Security.