Struct pyo3::ffi::PyASCIIObject
source · [−]#[repr(C)]pub struct PyASCIIObject {
pub ob_base: PyObject,
pub length: isize,
pub hash: isize,
pub state: u32,
pub wstr: *mut i32,
}
Fields
ob_base: PyObject
length: isize
hash: isize
Available on non-
PyPy
only.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 i32
Implementations
sourceimpl PyASCIIObject
impl PyASCIIObject
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.
pub unsafe fn interned(&self) -> u32
Available on little-endian only.
pub unsafe fn kind(&self) -> u32
Available on little-endian only.
pub unsafe fn compact(&self) -> u32
Available on little-endian only.
pub unsafe fn ascii(&self) -> u32
Available on little-endian only.
pub unsafe fn ready(&self) -> u32
Available on little-endian only.
Auto Trait Implementations
impl RefUnwindSafe for PyASCIIObject
impl !Send for PyASCIIObject
impl !Sync for PyASCIIObject
impl Unpin for PyASCIIObject
impl UnwindSafe for PyASCIIObject
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more