Struct pyo3::ffi::PyASCIIObject [−][src]
#[repr(C)]pub struct PyASCIIObject { pub ob_base: PyObject, pub length: Py_ssize_t, pub hash: Py_hash_t, pub state: u32, pub wstr: *mut wchar_t, }
Fields
ob_base: PyObject
length: Py_ssize_t
hash: Py_hash_t
state: u32
A bit field with various properties.
Rust doesn’t expose bitfields. So we have accessor functions for retrieving values.
unsigned int interned:2; // SSTATE_* constants. unsigned int kind:3; // PyUnicode_*_KIND constants. unsigned int compact:1; unsigned int ascii:1; unsigned int ready:1; unsigned int :24;
wstr: *mut wchar_t
Implementations
Interacting with the bitfield is not actually well-defined, so we mark these APIs unsafe.
In addition, they are disabled on big-endian architectures to restrict this to most “common” platforms, which are at least tested on CI and appear to be sound.