pub struct ModuleDef {
ffi_def: UnsafeCell<PyModuleDef>,
slots: &'static PyModuleSlots,
interpreter: AtomicI64,
module: PyOnceLock<Py<PyModule>>,
}Expand description
Sync wrapper of ffi::PyModuleDef.
Fields§
§ffi_def: UnsafeCell<PyModuleDef>§slots: &'static PyModuleSlots§interpreter: AtomicI64Available on neither
PyPy nor GraalPy and Py_3_9 and not (Windows and Py_LIMITED_API and non-Py_3_10) only.Interpreter ID where module was initialized (not applicable on PyPy).
module: PyOnceLock<Py<PyModule>>Initialized module object, cached to avoid reinitialization.
Implementations§
Source§impl ModuleDef
impl ModuleDef
Sourcepub const fn new(
name: &'static CStr,
doc: &'static CStr,
slots: &'static PyModuleSlots,
) -> Self
pub const fn new( name: &'static CStr, doc: &'static CStr, slots: &'static PyModuleSlots, ) -> Self
Make new module definition with given module name.
pub fn init_multi_phase(&'static self) -> *mut PyObject
Sourcepub fn make_module(&'static self, py: Python<'_>) -> PyResult<Py<PyModule>>
pub fn make_module(&'static self, py: Python<'_>) -> PyResult<Py<PyModule>>
Builds a module object directly. Used for #[pymodule] submodules.
pub fn get_slots(&'static self) -> *mut PyModuleDef_Slot
Trait Implementations§
Source§impl PyAddToModule for ModuleDef
For adding a module to a module.
impl PyAddToModule for ModuleDef
For adding a module to a module.
impl Sealed for ModuleDef
impl Sync for ModuleDef
Auto Trait Implementations§
impl !Freeze for ModuleDef
impl !RefUnwindSafe for ModuleDef
impl !Send for ModuleDef
impl Unpin for ModuleDef
impl UnsafeUnpin for ModuleDef
impl !UnwindSafe for ModuleDef
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