package decompress

  1. Overview
  2. Docs
type error = [
  1. | `Invalid_compression_level
  2. | `Unexpected_end_of_output
]

The type for deflation errors.

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

Pretty-printer for error.

val compress_bound : int -> int

compress_bound len returns a clue about how many bytes we need to store the result of the deflation of len bytes. It's a pessimistic calculation.

val deflate : ?level:int -> bigstring -> bigstring -> (int, [> error ]) Stdlib.result

deflate ~level src dst deflates the content of src into dst.

In case of sucess, it returns the bytes writen in an Ok result. In case of failure, it returns the error in an Error result. compress_bound can be used to determine how many bytes the user needs to allocate as the destination buffer when he wants to compress N bytes.

Here is an example of how to compress any inputs:

val input : bigstring

let len = De.Def.Ns.compress_bound (De.bigstring_length input) in
let dst = De.bigstring_create len in
De.Def.Ns.deflate ~level:4 input dst