14 个不稳定版本 (3 个破坏性更新)
0.4.2 | 2024年7月20日 |
---|---|
0.4.1 | 2024年7月19日 |
0.3.1 | 2024年7月19日 |
0.3.0 | 2024年6月25日 |
0.1.3 | 2024年6月17日 |
#382 in Rust 模式
2,182 monthly downloads
16KB
326 代码行
pyo3-special-method-derive
该包允许您使用 PyO3 自动为您的 Rust 包生成 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.22", features = ["multiple-pymethods"] }
依赖关系
~3.5MB
~76K SLoC