Skip to main content

PyModuleExt

Trait PyModuleExt 

Source
pub trait PyModuleExt {
    // Required method
    fn add_enum<T: PyEnum>(&self) -> PyResult<()>;
}
Expand description

Extension method for Bound<'_, PyModule> — the idiomatic way to register a derived enum inside a #[pymodule] body.

use pyenum::{PyEnum, PyModuleExt};
use pyo3::prelude::*;

#[derive(Clone, Copy, PyEnum)]
pub enum Color { Red, Green, Blue }

#[pymodule]
fn demo(m: &Bound<'_, PyModule>) -> PyResult<()> {
    m.add_enum::<Color>()
}

Required Methods§

Source

fn add_enum<T: PyEnum>(&self) -> PyResult<()>

Register the Python class for T on self under T::SPEC.name.

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.

Implementations on Foreign Types§

Source§

impl PyModuleExt for Bound<'_, PyModule>

Implementors§