package rfc1951
Library
Module
Module type
Parameter
Class
Class type
Inflate algorithm.
A functionnal non-blocking implementation of Zlib algorithm.
The state of the inflate algorithm. 'i
and 'o
are the implementation used respectively for the input and the output, see Buffer.st
and Buffer.bs
. The typer considers than 'i = 'o
.
val pp_error : Format.formatter -> error -> unit
Pretty-printer of inflate error.
val pp : 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 statet
waits a new input, may be you userefill
.`Flush t
: the statet
completes the output, may be you useflush
.`End t
: means that the deflate algorithm is done in your input. May bet
writes something in your output. You can check withused_out
.`Error (t, exn)
: the algorithm catches an errorexn
.
refill off len t
allows the state t
to use an output at off
on len
byte(s).
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 bits_remaining : ('x, 'x) t -> int
default
makes a new state t
.
val to_result :
'a ->
'a ->
('a -> int) ->
('a -> int -> int) ->
('a, 'a) t ->
(('a, 'a) t, error) 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 :
Bytes.t ->
Bytes.t ->
(Bytes.t -> int) ->
(Bytes.t -> int -> int) ->
(Bytes.t, Bytes.t) t ->
((Bytes.t, Bytes.t) t, error) result
Specialization of to_result
with Buffer.Bytes.t
.
val bigstring :
Buffer.Bigstring.t ->
Buffer.Bigstring.t ->
(Buffer.Bigstring.t -> int) ->
(Buffer.Bigstring.t -> int -> int) ->
(Buffer.Bigstring.t, Buffer.Bigstring.t) t ->
((Buffer.Bigstring.t, Buffer.Bigstring.t) t, error) result
Specialization of to_result
with Buffer.Bigstring.t
.