struct PyTypeBuilder {Show 19 fields
    slots: Vec<PyType_Slot>,
    method_defs: Vec<PyMethodDef>,
    member_defs: Vec<PyMemberDef>,
    getset_builders: HashMap<&'static CStr, GetSetDefBuilder>,
    cleanup: Vec<Box<dyn Fn(&PyTypeBuilder, *mut PyTypeObject)>>,
    tp_base: *mut PyTypeObject,
    tp_dealloc: destructor,
    tp_dealloc_with_gc: destructor,
    is_mapping: bool,
    is_sequence: bool,
    has_new: bool,
    has_dealloc: bool,
    has_getitem: bool,
    has_setitem: bool,
    has_traverse: bool,
    has_clear: bool,
    dict_offset: Option<Py_ssize_t>,
    class_flags: c_ulong,
    buffer_procs: PyBufferProcs,
}Fields§
§slots: Vec<PyType_Slot>§method_defs: Vec<PyMethodDef>§member_defs: Vec<PyMemberDef>§getset_builders: HashMap<&'static CStr, GetSetDefBuilder>§cleanup: Vec<Box<dyn Fn(&PyTypeBuilder, *mut PyTypeObject)>>Used to patch the type objects for the things there’s no PyType_FromSpec API for… there’s no reason this should work, except for that it does and we have tests.
tp_base: *mut PyTypeObject§tp_dealloc: destructor§tp_dealloc_with_gc: destructor§is_mapping: bool§is_sequence: bool§has_new: bool§has_dealloc: bool§has_getitem: bool§has_setitem: bool§has_traverse: bool§has_clear: bool§dict_offset: Option<Py_ssize_t>§class_flags: c_ulong§buffer_procs: PyBufferProcsAvailable on non-
Py_3_9 and non-Py_LIMITED_API only.Implementations§
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<GetSetDefDestructor>
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<Py_ssize_t>, weaklist_offset: Option<Py_ssize_t>, ) -> Self
fn build( self, py: Python<'_>, name: &'static str, module_name: Option<&'static str>, basicsize: usize, ) -> 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 !UnwindSafe for PyTypeBuilder
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
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 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