Skip to main content

pyforge_ffi/
codecs.rs

1use crate::object::PyObject;
2use std::ffi::{c_char, c_int};
3
4extern_libpython! {
5    pub fn PyCodec_Register(search_function: *mut PyObject) -> c_int;
6    #[cfg(Py_3_10)]
7    pub fn PyCodec_Unregister(search_function: *mut PyObject) -> c_int;
8    // skipped non-limited _PyCodec_Lookup from Include/codecs.h
9    // skipped non-limited _PyCodec_Forget from Include/codecs.h
10    pub fn PyCodec_KnownEncoding(encoding: *const c_char) -> c_int;
11    pub fn PyCodec_Encode(
12        object: *mut PyObject,
13        encoding: *const c_char,
14        errors: *const c_char,
15    ) -> *mut PyObject;
16    pub fn PyCodec_Decode(
17        object: *mut PyObject,
18        encoding: *const c_char,
19        errors: *const c_char,
20    ) -> *mut PyObject;
21    // skipped non-limited _PyCodec_LookupTextEncoding from Include/codecs.h
22    // skipped non-limited _PyCodec_EncodeText from Include/codecs.h
23    // skipped non-limited _PyCodec_DecodeText from Include/codecs.h
24    // skipped non-limited _PyCodecInfo_GetIncrementalDecoder from Include/codecs.h
25    // skipped non-limited _PyCodecInfo_GetIncrementalEncoder from Include/codecs.h
26    pub fn PyCodec_Encoder(encoding: *const c_char) -> *mut PyObject;
27    pub fn PyCodec_Decoder(encoding: *const c_char) -> *mut PyObject;
28    pub fn PyCodec_IncrementalEncoder(
29        encoding: *const c_char,
30        errors: *const c_char,
31    ) -> *mut PyObject;
32    pub fn PyCodec_IncrementalDecoder(
33        encoding: *const c_char,
34        errors: *const c_char,
35    ) -> *mut PyObject;
36    pub fn PyCodec_StreamReader(
37        encoding: *const c_char,
38        stream: *mut PyObject,
39        errors: *const c_char,
40    ) -> *mut PyObject;
41    pub fn PyCodec_StreamWriter(
42        encoding: *const c_char,
43        stream: *mut PyObject,
44        errors: *const c_char,
45    ) -> *mut PyObject;
46    pub fn PyCodec_RegisterError(name: *const c_char, error: *mut PyObject) -> c_int;
47    pub fn PyCodec_LookupError(name: *const c_char) -> *mut PyObject;
48    pub fn PyCodec_StrictErrors(exc: *mut PyObject) -> *mut PyObject;
49    pub fn PyCodec_IgnoreErrors(exc: *mut PyObject) -> *mut PyObject;
50    pub fn PyCodec_ReplaceErrors(exc: *mut PyObject) -> *mut PyObject;
51    pub fn PyCodec_XMLCharRefReplaceErrors(exc: *mut PyObject) -> *mut PyObject;
52    pub fn PyCodec_BackslashReplaceErrors(exc: *mut PyObject) -> *mut PyObject;
53    // skipped non-limited PyCodec_NameReplaceErrors from Include/codecs.h
54    // skipped non-limited Py_hexdigits from Include/codecs.h
55}