package decompress
Library
Module
Module type
Parameter
Class
Class type
The type for input sources. With a `Manual
source the client must provide input with src
. With `String
or `Channel
source the client can safely discard `Await
case (with assert false
).
decoder src ~o ~w
is a decoder that inputs from src
.
Output buffer.
de
uses o
buffer as internal buffer to store output. We recommend to allocate an io_buffer_size
buffer as output buffer. Then, dst_rem
gives you how many bytes it remains in o
.
Window.
de
needs a window to be able to interpret `Copy
code. Length of window is commonly 32k bytes (but the client can use a smaller one with some assumptions).
decode d
is:
`Await
ifd
has a`Manual
input source and awaits for more input. The client must usesrc
to provide it.`Flush d
if given output buffero
(seedecoder
) is full. The client must useflush
to completely flusho
.dst_rem
gives you how many bytes it remains ino
.Inf.dst_rem d - bigstring_length o
gives you how many bytes are available.`Malformed err
if given input is malformed.err
is a human-readable error.`End
if given input notify end of flow.o
is possibly not empty (it can be check withdst_rem
).
src d s j l
provides d
with l
bytes to read, starting at j
in s
. This byte range is read by calls to decode
with d
until `Await
is returned. To signal the end of input call the function with l = 0
.
val dst_rem : decoder -> int
dst_rem d
is how many bytes it remains in given output buffer o
.
val src_rem : decoder -> int
src_rem d
is how many bytes it remains in given input buffer.
val flush : decoder -> unit
flush d
provides d
with new output storage.
module Ns : sig ... end
A non-streamable implementation of the RFC 1951. It considers the input to be whole and is therefore able to save some time