Trait Initializer

Source
pub trait Initializer: PyPayload {
    type Args: FromArgs;

    const __OWN_METHOD_DEFS: &'static [PyMethodDef] = _;

    // Required method
    fn init(
        zelf: PyRef<Self>,
        args: Self::Args,
        vm: &VirtualMachine,
    ) -> PyResult<()>;

    // Provided methods
    fn slot_init(
        zelf: PyObjectRef,
        args: FuncArgs,
        vm: &VirtualMachine,
    ) -> PyResult<()> { ... }
    fn __init__(
        zelf: PyRef<Self>,
        args: Self::Args,
        vm: &VirtualMachine,
    ) -> PyResult<()> { ... }
    fn __extend_py_class(ctx: &Context, class: &'static Py<PyType>) { ... }
    fn __extend_slots(slots: &mut PyTypeSlots) { ... }
}

Provided Associated Constants§

Source

const __OWN_METHOD_DEFS: &'static [PyMethodDef] = _

Required Associated Types§

Required Methods§

Source

fn init( zelf: PyRef<Self>, args: Self::Args, vm: &VirtualMachine, ) -> PyResult<()>

Provided Methods§

Source

fn slot_init( zelf: PyObjectRef, args: FuncArgs, vm: &VirtualMachine, ) -> PyResult<()>

Source

fn __init__( zelf: PyRef<Self>, args: Self::Args, vm: &VirtualMachine, ) -> PyResult<()>

Source

fn __extend_py_class(ctx: &Context, class: &'static Py<PyType>)

Source

fn __extend_slots(slots: &mut PyTypeSlots)

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§