package decompress

  1. Overview
  2. Docs

A non-streamable implementation of the RFC 1951. It considers the input to be whole and is therefore able to save some time

type error = [
  1. | `Unexpected_end_of_input
  2. | `Unexpected_end_of_output
  3. | `Invalid_kind_of_block
  4. | `Invalid_dictionary
  5. | `Invalid_complement_of_length
  6. | `Invalid_distance
  7. | `Invalid_distance_code
]

The type for inflation errors.

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

Pretty-printer of error.

val inflate : bigstring -> bigstring -> (int * int, [> error ]) Stdlib.result

inflate src dst w inflates the content of src into dst.

In case of sucess, it returns the bytes read and the bytes writen in an Ok result. In case of failure, it returns the error in an Error result. We assume that src is well formed and dst is enough larger to store the result of the inflation. The usual worst case is when dst must be equal (in size) or larger than src. Such case appears for really small objects and in that case, we returns Error `Unexpected_end_of_output.