pyo3_special_method_derive 0.1.2

Automatically derive Python dunder methods for your Rust code
Documentation
# pyo3-special-method-derive

This crate enables you to automatically derive Python dunder methods for your Rust crate using PyO3.

## Key features
- The following methods may be automatically derived on structs and enums:
    - `__str__`
    - `__repr__`
    - `__dir__`
    - `__getattr__`
    - `__dict__`
- Support for structs and enums (only unit and complex enums due to a PyO3 limitation)
- Support for skipping variants or fields with the `#[skip]` attribute
- Automatically skip struct fields which are not `pub`
- Support for skipping variants or fields for `__str__` or `__repr__` differently with the `#[skip_str]` and `#[skip_repr]` attributes

> Note: When using the `StrReprHelper` macro. if `T` did not use `StrReprHelper`, it requires `T: Debug` for each `T` inside the item. The `Debug` trait is used for the outputs.

## Example
```rust
#[pyclass]
#[derive(DirHelper, StrReprHelper)]
struct Person {
    pub name: String,
    occupation: String,
    #[skip]
    pub phone_num: String,
}
```

## PyO3 feature note
To use `pyo3-special-method-derive`, you should enable the `multiple-pymethods` feature on PyO3:
```
pyo3 = { version = "0.21", features = ["multiple-pymethods"] }
```