python27_sys/
fileobject.rs

1use libc::{c_char, c_int, size_t, FILE};
2
3use crate::object::*;
4
5#[cfg_attr(windows, link(name = "pythonXY"))]
6extern "C" {
7    pub static mut PyFile_Type: PyTypeObject;
8}
9
10#[inline(always)]
11pub unsafe fn PyFile_Check(op: *mut PyObject) -> c_int {
12    PyObject_TypeCheck(op, &mut PyFile_Type)
13}
14
15#[inline(always)]
16pub unsafe fn PyFile_CheckExact(op: *mut PyObject) -> c_int {
17    (Py_TYPE(op) == &mut PyFile_Type) as c_int
18}
19
20pub const PY_STDIOTEXTMODE: &str = "b";
21
22#[cfg_attr(windows, link(name = "pythonXY"))]
23extern "C" {
24    pub fn PyFile_FromString(arg1: *mut c_char, arg2: *mut c_char) -> *mut PyObject;
25    pub fn PyFile_SetBufSize(arg1: *mut PyObject, arg2: c_int);
26    pub fn PyFile_SetEncoding(arg1: *mut PyObject, arg2: *const c_char) -> c_int;
27    pub fn PyFile_SetEncodingAndErrors(
28        arg1: *mut PyObject,
29        arg2: *const c_char,
30        errors: *mut c_char,
31    ) -> c_int;
32    pub fn PyFile_FromFile(
33        arg1: *mut FILE,
34        arg2: *mut c_char,
35        arg3: *mut c_char,
36        arg4: Option<unsafe extern "C" fn(arg1: *mut FILE) -> c_int>,
37    ) -> *mut PyObject;
38    pub fn PyFile_AsFile(arg1: *mut PyObject) -> *mut FILE;
39    ignore! {
40        pub fn PyFile_IncUseCount(arg1: *mut PyFileObject);
41        pub fn PyFile_DecUseCount(arg1: *mut PyFileObject);
42    }
43    pub fn PyFile_Name(arg1: *mut PyObject) -> *mut PyObject;
44    pub fn PyFile_GetLine(arg1: *mut PyObject, arg2: c_int) -> *mut PyObject;
45    pub fn PyFile_WriteObject(arg1: *mut PyObject, arg2: *mut PyObject, arg3: c_int) -> c_int;
46    pub fn PyFile_SoftSpace(arg1: *mut PyObject, arg2: c_int) -> c_int;
47    pub fn PyFile_WriteString(arg1: *const c_char, arg2: *mut PyObject) -> c_int;
48    pub fn PyObject_AsFileDescriptor(arg1: *mut PyObject) -> c_int;
49    pub fn Py_UniversalNewlineFgets(
50        arg1: *mut c_char,
51        arg2: c_int,
52        arg3: *mut FILE,
53        arg4: *mut PyObject,
54    ) -> *mut c_char;
55    pub fn Py_UniversalNewlineFread(
56        arg1: *mut c_char,
57        arg2: size_t,
58        arg3: *mut FILE,
59        arg4: *mut PyObject,
60    ) -> size_t;
61
62    pub static mut Py_FileSystemDefaultEncoding: *const c_char;
63}