struct PyTypeBuilder {Show 18 fields
slots: Vec<PyType_Slot>,
method_defs: Vec<PyMethodDef>,
member_defs: Vec<PyMemberDef>,
getset_builders: HashMap<&'static CStr, GetSetDefBuilder>,
tp_base: *mut PyTypeObject,
tp_dealloc: destructor,
tp_dealloc_with_gc: destructor,
is_mapping: bool,
is_sequence: bool,
is_immutable_type: bool,
has_new: bool,
has_dealloc: bool,
has_getitem: bool,
has_setitem: bool,
has_traverse: bool,
has_clear: bool,
dict_offset: Option<PyObjectOffset>,
class_flags: c_ulong,
}Fields§
§slots: Vec<PyType_Slot>§method_defs: Vec<PyMethodDef>§member_defs: Vec<PyMemberDef>§getset_builders: HashMap<&'static CStr, GetSetDefBuilder>§tp_base: *mut PyTypeObject§tp_dealloc: destructor§tp_dealloc_with_gc: destructor§is_mapping: bool§is_sequence: bool§is_immutable_type: bool§has_new: bool§has_dealloc: bool§has_getitem: bool§has_setitem: bool§has_traverse: bool§has_clear: bool§dict_offset: Option<PyObjectOffset>§class_flags: c_ulongImplementations§
Source§impl PyTypeBuilder
impl PyTypeBuilder
Sourceunsafe fn push_slot<T>(&mut self, slot: c_int, pfunc: *mut T)
unsafe fn push_slot<T>(&mut self, slot: c_int, pfunc: *mut T)
§Safety
The given pointer must be of the correct type for the given slot
Sourceunsafe fn push_raw_vec_slot<T>(&mut self, slot: c_int, data: Vec<T>)
unsafe fn push_raw_vec_slot<T>(&mut self, slot: c_int, data: Vec<T>)
§Safety
It is the caller’s responsibility that data is of the correct type for the given slot.
fn pymethod_def(&mut self, def: &PyMethodDefType)
fn finalize_methods_and_properties(&mut self) -> Vec<GetSetDefType>
fn set_is_basetype(self, is_basetype: bool) -> Self
Sourceunsafe fn class_items(self, iter: PyClassItemsIter) -> Self
unsafe fn class_items(self, iter: PyClassItemsIter) -> Self
§Safety
All slots in the PyClassItemsIter should be correct
fn type_doc(self, type_doc: &'static CStr) -> Self
fn offsets( self, dict_offset: Option<PyObjectOffset>, weaklist_offset: Option<PyObjectOffset>, ) -> Self
fn build( self, py: Python<'_>, name: &'static str, module_name: Option<&'static str>, basicsize: Py_ssize_t, ) -> PyResult<PyClassTypeObject>
Auto Trait Implementations§
impl Freeze for PyTypeBuilder
impl RefUnwindSafe for PyTypeBuilder
impl !Send for PyTypeBuilder
impl !Sync for PyTypeBuilder
impl Unpin for PyTypeBuilder
impl UnsafeUnpin for PyTypeBuilder
impl UnwindSafe for PyTypeBuilder
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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 moreSource§impl<T> SizedTypeProperties for T
impl<T> SizedTypeProperties for T
Source§#[doc(hidden)]const SIZE: usize = _
#[doc(hidden)]const SIZE: usize = _
🔬This is a nightly-only experimental API. (
sized_type_properties)Source§#[doc(hidden)]const ALIGN: usize = _
#[doc(hidden)]const ALIGN: usize = _
🔬This is a nightly-only experimental API. (
sized_type_properties)Source§#[doc(hidden)]const ALIGNMENT: Alignment = _
#[doc(hidden)]const ALIGNMENT: Alignment = _
🔬This is a nightly-only experimental API. (
ptr_alignment_type)Source§#[doc(hidden)]const IS_ZST: bool = _
#[doc(hidden)]const IS_ZST: bool = _
🔬This is a nightly-only experimental API. (
sized_type_properties)Source§#[doc(hidden)]const LAYOUT: Layout = _
#[doc(hidden)]const LAYOUT: Layout = _
🔬This is a nightly-only experimental API. (
sized_type_properties)Source§#[doc(hidden)]const MAX_SLICE_LEN: usize = _
#[doc(hidden)]const MAX_SLICE_LEN: usize = _
🔬This is a nightly-only experimental API. (
sized_type_properties)The largest safe length for a
[Self]. Read more