Current section

Files

Jump to
gzlib src gzlib.erl
Raw

src/gzlib.erl

-module(gzlib).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([compression_level/1, compress/1, compress_with_level/2, uncompress/1, crc32/1, continue_crc32/2]).
-export_type([compression_level/0]).
-opaque compression_level() :: {compression_level, integer()}.
-spec compression_level(integer()) -> {ok, compression_level()} | {error, nil}.
compression_level(Level) ->
case (Level >= 0) andalso (Level =< 9) of
true ->
{ok, {compression_level, Level}};
false ->
{error, nil}
end.
-spec compress(bitstring()) -> bitstring().
compress(Data) ->
zlib:compress(Data).
-spec compress_with_level(bitstring(), compression_level()) -> bitstring().
compress_with_level(Data, Level) ->
gzlib_erl:compress(Data, erlang:element(2, Level)).
-spec uncompress(bitstring()) -> bitstring().
uncompress(Data) ->
zlib:uncompress(Data).
-spec crc32(bitstring()) -> integer().
crc32(Data) ->
erlang:crc32(Data).
-spec continue_crc32(integer(), bitstring()) -> integer().
continue_crc32(Init, Data) ->
erlang:crc32(Init, Data).