aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Modules/_zstd/_zstdmodule.h
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/_zstd/_zstdmodule.h')
-rw-r--r--Modules/_zstd/_zstdmodule.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/Modules/_zstd/_zstdmodule.h b/Modules/_zstd/_zstdmodule.h
new file mode 100644
index 00000000000..4e8f708f223
--- /dev/null
+++ b/Modules/_zstd/_zstdmodule.h
@@ -0,0 +1,61 @@
+/* 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
+
+#include "zstddict.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_SET_PLEDGED_INPUT_SIZE,
+
+ 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;
+
+extern ZstdDict *
+_Py_parse_zstd_dict(const _zstd_state *state,
+ PyObject *dict, int *type);
+
+/* Format error message and set ZstdError. */
+extern void
+set_zstd_error(const _zstd_state *state,
+ 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