-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).