# Contributing to passay-rs
Thank you for considering contributing to passay-rs! It's people like you that make passay-rs such a great tool.
## How to Contribute
### Reporting Bugs
If you think you have found a bug, please follow these steps:
1. **Check the [issues](https://github.com/mojtab23/passay-rs/issues)** to see if someone else has already reported it.
2. If there is no existing report, create a new issue with detailed information about the problem, including your environment and any relevant logs or screenshots.
### Suggesting Enhancements
If you have an idea for how passay-rs could be improved, please follow these steps:
1. **Check the [issues](https://github.com/mojtab23/passay-rs/issues)** to see if someone else has already suggested it.
2. If there is no existing suggestion, create a new issue with detailed information about your idea and any relevant examples or use cases.
### Pull Requests
1. **Fork the repository** on GitHub.
2. Clone your fork locally:
```bash
git clone https://github.com/mojtab23/passay-rs.git
cd passay-rs
```
3. Create a new branch for your changes:
```bash
git checkout -b feature/new-rule
```
4. Make your changes in the new branch.
5. Commit your changes with clear and concise commit messages:
```bash
git commit -m "Add rule to check for common words"
```
6. Push your changes to your fork on GitHub:
```bash
git push origin feature/new-rule
```
7. Create a pull request from your fork to the main repository, explaining what your code does and providing necessary context for review.
### Code Style
Please follow the existing coding style in the project as closely as possible. This includes but is not limited to:
- **Rust formatting** using `rustfmt`.
- **Documentation**: All public items should be documented, following Rust's documentation standards.
### Testing
All new features or bug fixes must include appropriate tests. Please ensure that your changes pass all existing tests and consider adding additional tests if applicable.
Thank you for contributing to passay-rs!