/* Low level interface to the Zstandard algorthm & the zstd library. */ /* Declarations shared between different parts of the _zstd module*/ #ifndef ZSTD_MODULE_H #define ZSTD_MODULE_H /* Type specs */ extern PyType_Spec zstd_dict_type_spec; extern PyType_Spec zstd_compressor_type_spec; extern PyType_Spec zstd_decompressor_type_spec; typedef struct { /* Module heap types. */ PyTypeObject *ZstdDict_type; PyTypeObject *ZstdCompressor_type; PyTypeObject *ZstdDecompressor_type; PyObject *ZstdError; /* enum types set by set_parameter_types. */ PyTypeObject *CParameter_type; PyTypeObject *DParameter_type; } _zstd_state; typedef enum { ERR_DECOMPRESS, ERR_COMPRESS, ERR_LOAD_D_DICT, ERR_LOAD_C_DICT, ERR_GET_C_BOUNDS, ERR_GET_D_BOUNDS, ERR_SET_C_LEVEL, ERR_TRAIN_DICT, ERR_FINALIZE_DICT, } error_type; typedef enum { DICT_TYPE_DIGESTED = 0, DICT_TYPE_UNDIGESTED = 1, DICT_TYPE_PREFIX = 2 } dictionary_type; /* Format error message and set ZstdError. */ extern void set_zstd_error(const _zstd_state* const state, const error_type type, size_t zstd_ret); extern void set_parameter_error(int is_compress, int key_v, int value_v); #endif // !ZSTD_MODULE_H