Skip to main content

PyModuleDef

Struct PyModuleDef 

Source
pub struct PyModuleDef {
    pub name: &'static PyStrInterned,
    pub doc: Option<&'static PyStrInterned>,
    pub methods: &'static [PyMethodDef],
    pub slots: PyModuleSlots,
}

Fields§

§name: &'static PyStrInterned§doc: Option<&'static PyStrInterned>§methods: &'static [PyMethodDef]§slots: PyModuleSlots

Implementations§

Source§

impl PyModuleDef

Source

pub fn create_module( &'static self, vm: &VirtualMachine, ) -> PyResult<PyRef<PyModule>>

Create a module from this definition (Phase 1 of multi-phase init).

This performs:

  1. Create module object (using create slot if provided)
  2. Initialize module dict from def
  3. Add methods to module

Does NOT add to sys.modules or call exec slot.

Source

pub fn exec_module( &'static self, vm: &VirtualMachine, module: &Py<PyModule>, ) -> PyResult<()>

Execute the module’s exec slot (Phase 2 of multi-phase init).

Calls the exec slot if present. Returns Ok(()) if no exec slot.

Trait Implementations§

Source§

impl Debug for PyModuleDef

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl MaybeTraverse for PyModuleDef

Source§

const HAS_TRAVERSE: bool = false

if is traceable, will be used by vtable to determine
Source§

const HAS_CLEAR: bool = false

if has clear implementation for circular reference resolution (tp_clear)
Source§

fn try_traverse(&self, tracer_fn: &mut TraverseFn<'_>)

Source§

fn try_clear(&mut self, out: &mut Vec<PyObjectRef>)

Source§

impl PyClassDef for PyModuleDef

Source§

const NAME: &'static str = "module"

Source§

const MODULE_NAME: Option<&'static str> = None

Source§

const TP_NAME: &'static str = "module"

Source§

const DOC: Option<&'static str>

Source§

const BASICSIZE: usize

Source§

const UNHASHABLE: bool = false

Source§

type Base = PyBaseObject

Source§

const ITEMSIZE: usize = 0

Source§

impl StaticType for PyModuleDef

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T, U> ExactFrom<T> for U
where U: TryFrom<T>,

Source§

fn exact_from(value: T) -> U

Source§

impl<T, U> ExactInto<U> for T
where U: ExactFrom<T>,

Source§

fn exact_into(self) -> U

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T, U> OverflowingInto<U> for T
where U: OverflowingFrom<T>,

Source§

impl<T, U> RoundingInto<U> for T
where U: RoundingFrom<T>,

Source§

impl<T, U> SaturatingInto<U> for T
where U: SaturatingFrom<T>,

Source§

impl<T> ToDebugString for T
where T: Debug,

Source§

fn to_debug_string(&self) -> String

Returns the String produced by Ts Debug implementation.

§Examples
use malachite_base::strings::ToDebugString;

assert_eq!([1, 2, 3].to_debug_string(), "[1, 2, 3]");
assert_eq!(
    [vec![2, 3], vec![], vec![4]].to_debug_string(),
    "[[2, 3], [], [4]]"
);
assert_eq!(Some(5).to_debug_string(), "Some(5)");
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U> WrappingInto<U> for T
where U: WrappingFrom<T>,

Source§

fn wrapping_into(self) -> U

Source§

impl<T> PyThreadingConstraint for T