1 个不稳定版本
0.4.2 | 2024 年 7 月 20 日 |
---|
#2137 in 过程宏
161 每月下载量
用于 pyo3_special_method_deriv…
49KB
959 行代码(不包括注释)
pyo3-special-method-derive
此 crate 允许您使用 PyO3 自动为 Rust crate 生成 Python dunder 方法。
主要功能
- 以下方法可以在结构和枚举上自动生成
__str__
__repr__
__dir__
__getattr__
__dict__
- 支持结构和枚举(由于 PyO3 的限制,仅支持单元和复杂枚举)
- 支持使用
#[pyo3_smd(skip)]
属性跳过变体或字段 - 自动跳过非
pub
的结构字段 - 支持使用
#[pyo3_smd_str(skip)]
和#[pyo3_smd_str(repr)]
属性分别跳过 __str__ 或 __repr__ 的变体或字段
示例
#[pyclass]
#[derive(Dir, Str, Repr)]
struct Person {
pub name: String,
occupation: String,
#[pyo3_smd(skip)]
pub phone_num: String,
}
PyO3 功能说明
要使用 pyo3-special-method-derive
,应在 PyO3 上启用 multiple-pymethods
功能
pyo3 = { version = "0.21", features = ["multiple-pymethods"] }
依赖项
~4–10MB
~100K SLoC