#[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
GraalPy
only.hash: isize
PyPy
nor GraalPy
.state: u32
GraalPy
only.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
Py_3_12
nor GraalPy
.Implementations§
Source§impl PyASCIIObject
impl PyASCIIObject
Interacting with the bitfield is not actually well-defined, so we mark these APIs unsafe.
Sourcepub unsafe fn interned(&self) -> u32
Available on non-GraalPy
only.
pub unsafe fn interned(&self) -> u32
GraalPy
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: u32)
Available on non-GraalPy
only.
pub unsafe fn set_interned(&mut self, val: u32)
GraalPy
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) -> u32
Available on non-GraalPy
only.
pub unsafe fn kind(&self) -> u32
GraalPy
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: u32)
Available on non-GraalPy
only.
pub unsafe fn set_kind(&mut self, val: u32)
GraalPy
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) -> u32
Available on non-GraalPy
only.
pub unsafe fn compact(&self) -> u32
GraalPy
only.Get the compact
field of the PyASCIIObject
state bitfield.
Returns either 0
or 1
.
Sourcepub unsafe fn set_compact(&mut self, val: u32)
Available on non-GraalPy
only.
pub unsafe fn set_compact(&mut self, val: u32)
GraalPy
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) -> u32
Available on non-GraalPy
only.
pub unsafe fn ascii(&self) -> u32
GraalPy
only.Get the ascii
field of the PyASCIIObject
state bitfield.
Returns either 0
or 1
.
Sourcepub unsafe fn set_ascii(&mut self, val: u32)
Available on non-GraalPy
only.
pub unsafe fn set_ascii(&mut self, val: u32)
GraalPy
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) -> u32
Available on non-GraalPy
and non-Py_3_12
only.
pub unsafe fn ready(&self) -> u32
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: u32)
Available on non-GraalPy
and non-Py_3_12
only.
pub unsafe fn set_ready(&mut self, val: u32)
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> AssertNotZeroSized for T
impl<T> AssertNotZeroSized for T
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more