Types
zxc_cctx {.byCopy, incompleteStruct.} = object
zxc_cctxPtr = ptr zxc_cctx
zxc_compress_opts_t {.byCopy.} = object n_threads*: cint level*: cint block_size*: csize_t checksum_enabled*: cint seekable*: cint progress_cb*: zxc_progress_callback_t user_data*: pointer
zxc_compression_level_t {.size: 4.} = enum ZXC_LEVEL_FASTEST = 1, ZXC_LEVEL_FAST = 2, ZXC_LEVEL_DEFAULT = 3, ZXC_LEVEL_BALANCED = 4, ZXC_LEVEL_COMPACT = 5
zxc_dctx {.byCopy, incompleteStruct.} = object
zxc_dctxPtr = ptr zxc_dctx
zxc_decompress_opts_t {.byCopy.} = object n_threads*: cint checksum_enabled*: cint progress_cb*: zxc_progress_callback_t user_data*: pointer
zxc_nim_progress_cb_t = proc (bytesProcessed: uint64; bytesTotal: uint64; userData: pointer) {.cdecl.}
zxc_progress_callback_t = proc (bytes_processed: uint64; bytes_total: uint64; user_data: pointer) {.cdecl.}
Consts
ZXC_BLOCK_SIZE_DEFAULT = 262144
ZXC_BLOCK_SIZE_MAX = 2097152
ZXC_BLOCK_SIZE_MIN = 4096
ZXC_ERROR_BAD_BLOCK_SIZE = -14'i32
ZXC_ERROR_BAD_BLOCK_TYPE = -13'i32
ZXC_ERROR_BAD_CHECKSUM = -7'i32
ZXC_ERROR_BAD_HEADER = -6'i32
ZXC_ERROR_BAD_MAGIC = -4'i32
ZXC_ERROR_BAD_OFFSET = -9'i32
ZXC_ERROR_BAD_VERSION = -5'i32
ZXC_ERROR_CORRUPT_DATA = -8'i32
ZXC_ERROR_DST_TOO_SMALL = -2'i32
ZXC_ERROR_IO = -11'i32
ZXC_ERROR_MEMORY = -1'i32
ZXC_ERROR_NULL_INPUT = -12'i32
ZXC_ERROR_OVERFLOW = -10'i32
ZXC_ERROR_SRC_TOO_SMALL = -3'i32
ZXC_OK = 0'i32
Procs
proc zxc_compress(src: pointer; src_size: csize_t; dst: pointer; dst_capacity: csize_t; opts: ptr zxc_compress_opts_t): int64 {. importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_compress_block(cctx: zxc_cctxPtr; src: pointer; src_size: csize_t; dst: pointer; dst_capacity: csize_t; opts: ptr zxc_compress_opts_t): int64 {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_compress_block_bound(input_size: csize_t): uint64 {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_compress_bound(input_size: csize_t): uint64 {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_compress_cctx(cctx: zxc_cctxPtr; src: pointer; src_size: csize_t; dst: pointer; dst_capacity: csize_t; opts: ptr zxc_compress_opts_t): int64 {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_create_cctx(opts: ptr zxc_compress_opts_t): zxc_cctxPtr {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_create_dctx(): zxc_dctxPtr {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_decompress(src: pointer; src_size: csize_t; dst: pointer; dst_capacity: csize_t; opts: ptr zxc_decompress_opts_t): int64 {. importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_decompress_block(dctx: zxc_dctxPtr; src: pointer; src_size: csize_t; dst: pointer; dst_capacity: csize_t; opts: ptr zxc_decompress_opts_t): int64 {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_decompress_dctx(dctx: zxc_dctxPtr; src: pointer; src_size: csize_t; dst: pointer; dst_capacity: csize_t; opts: ptr zxc_decompress_opts_t): int64 {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_default_level(): cint {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_error_name(code: cint): cstring {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_free_cctx(cctx: zxc_cctxPtr) {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_free_dctx(dctx: zxc_dctxPtr) {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_get_decompressed_size(src: pointer; src_size: csize_t): uint64 {. importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_max_level(): cint {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_min_level(): cint {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_stream_compress(f_in: ptr File; f_out: ptr File; opts: ptr zxc_compress_opts_t): int64 {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_stream_decompress(f_in: ptr File; f_out: ptr File; opts: ptr zxc_decompress_opts_t): int64 {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_stream_get_decompressed_size(f_in: ptr File): int64 {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}
proc zxc_version_string(): cstring {.importc, header: "<zxc.h>", ...raises: [], tags: [], forbids: [].}