#[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,
}Py_LIMITED_API only.Fields§
§ob_base: PyObject§length: Py_ssize_t§hash: Py_hash_tPy_3_11 or non-PyPy only.state: u32A bit field with various properties.
Rust doesn’t expose bitfields. So we have accessor functions for retrieving values.
Before 3.12: 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;
3.12 and 3.13: unsigned int interned:2; // SSTATE_* constants. unsigned int kind:3; // PyUnicode_*_KIND constants. unsigned int compact:1; unsigned int ascii:1; unsigned int statically_allocated:1; unsigned int :24;
3.14 and later: uint16_t interned; // SSTATE_* constants. unsigned short kind:3; // PyUnicode_*_KIND constants. unsigned short compact:1; unsigned short ascii:1; unsigned int statically_allocated:1; unsigned int :10;
wstr: *mut wchar_tPy_3_12 only.Implementations§
Source§impl PyASCIIObject
Interacting with the bitfield is not actually well-defined, so we mark these APIs unsafe.
impl PyASCIIObject
Interacting with the bitfield is not actually well-defined, so we mark these APIs unsafe.
Sourcepub unsafe fn interned(&self) -> c_uint
Available on non-GraalPy and non-Py_3_14 only.
pub unsafe fn interned(&self) -> c_uint
GraalPy and non-Py_3_14 only.Get the interned field of the PyASCIIObject state bitfield.
Returns one of: SSTATE_NOT_INTERNED, SSTATE_INTERNED_MORTAL,
SSTATE_INTERNED_IMMORTAL, or [SSTATE_INTERNED_IMMORTAL_STATIC].
Sourcepub unsafe fn set_interned(&mut self, val: c_uint)
Available on non-GraalPy and non-Py_3_14 only.
pub unsafe fn set_interned(&mut self, val: c_uint)
GraalPy and non-Py_3_14 only.Set the interned field of the PyASCIIObject state bitfield.
Calling this function with an argument that is not SSTATE_NOT_INTERNED,
SSTATE_INTERNED_MORTAL, SSTATE_INTERNED_IMMORTAL, or
[SSTATE_INTERNED_IMMORTAL_STATIC] is invalid.
Sourcepub unsafe fn kind(&self) -> c_uint
Available on non-GraalPy and non-Py_3_14 only.
pub unsafe fn kind(&self) -> c_uint
GraalPy and non-Py_3_14 only.Get the kind field of the PyASCIIObject state bitfield.
Returns one of:
PyUnicode_WCHAR_KIND,
PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND, or PyUnicode_4BYTE_KIND.
Sourcepub unsafe fn set_kind(&mut self, val: c_uint)
Available on non-GraalPy and non-Py_3_14 only.
pub unsafe fn set_kind(&mut self, val: c_uint)
GraalPy and non-Py_3_14 only.Set the kind field of the PyASCIIObject state bitfield.
Calling this function with an argument that is not
PyUnicode_WCHAR_KIND,
PyUnicode_1BYTE_KIND, PyUnicode_2BYTE_KIND, or PyUnicode_4BYTE_KIND is invalid.
Sourcepub unsafe fn compact(&self) -> c_uint
Available on non-GraalPy and non-Py_3_14 only.
pub unsafe fn compact(&self) -> c_uint
GraalPy and non-Py_3_14 only.Get the compact field of the PyASCIIObject state bitfield.
Returns either 0 or 1.
Sourcepub unsafe fn set_compact(&mut self, val: c_uint)
Available on non-GraalPy and non-Py_3_14 only.
pub unsafe fn set_compact(&mut self, val: c_uint)
GraalPy and non-Py_3_14 only.Set the compact flag of the PyASCIIObject state bitfield.
Calling this function with an argument that is neither 0 nor 1 is invalid.
Sourcepub unsafe fn ascii(&self) -> c_uint
Available on non-GraalPy and non-Py_3_14 only.
pub unsafe fn ascii(&self) -> c_uint
GraalPy and non-Py_3_14 only.Get the ascii field of the PyASCIIObject state bitfield.
Returns either 0 or 1.
Sourcepub unsafe fn set_ascii(&mut self, val: c_uint)
Available on non-GraalPy and non-Py_3_14 only.
pub unsafe fn set_ascii(&mut self, val: c_uint)
GraalPy and non-Py_3_14 only.Set the ascii flag of the PyASCIIObject state bitfield.
Calling this function with an argument that is neither 0 nor 1 is invalid.
Sourcepub unsafe fn ready(&self) -> c_uint
Available on non-GraalPy and non-Py_3_12 only.
pub unsafe fn ready(&self) -> c_uint
GraalPy and non-Py_3_12 only.Get the ready field of the PyASCIIObject state bitfield.
Returns either 0 or 1.
Sourcepub unsafe fn set_ready(&mut self, val: c_uint)
Available on non-GraalPy and non-Py_3_12 only.
pub unsafe fn set_ready(&mut self, val: c_uint)
GraalPy and non-Py_3_12 only.Set the ready flag of the PyASCIIObject state bitfield.
Calling this function with an argument that is neither 0 nor 1 is invalid.
Auto Trait Implementations§
impl Freeze for PyASCIIObject
impl RefUnwindSafe for PyASCIIObject
impl !Send for PyASCIIObject
impl !Sync for PyASCIIObject
impl Unpin for PyASCIIObject
impl UnwindSafe for PyASCIIObject
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> SizedTypeProperties for T
impl<T> SizedTypeProperties for T
Source§#[doc(hidden)] const IS_ZST: bool = _
#[doc(hidden)] const IS_ZST: bool = _
sized_type_properties)Source§#[doc(hidden)] const LAYOUT: Layout = _
#[doc(hidden)] const LAYOUT: Layout = _
sized_type_properties)Source§#[doc(hidden)] const MAX_SLICE_LEN: usize = _
#[doc(hidden)] const MAX_SLICE_LEN: usize = _
sized_type_properties)[Self]. Read more