# Contributing
Whilst this is a small project, so I can manage most of the work, and contributions are accepted. These follow the standard git procedure: fork the repo, make changes, and then submit a PR when you're done. I would also recommend creating or replying to an issue so other contributors know that work is already being done

> This is meant to be a compact library so please ask me if you want to add a feature, or else your PR may be rejected

### General Architecture
This is a simple library, so its architecture is also fairly basic. Most of the functions are either clones of existing hashmap functions, or custom ones for tree-based operations. While there are a lot of recursive functions, it is important to state that these functions **must** be checked to avoid the risk of infinite recursion.

You may notice that some of the functions delegate work to an 'inner' variant, this improves recursion speed since there is sometimes a little setup that has to be done first.

### Tooling
This project uses a few tools to ensure code quality, these are:
  - Clippy (preinstalled with cargo)
  - [Typos](https://github.com/crate-ci/typos) (Spellcheck)

[Just](https://github.com/casey/just) is used as a command runner to enable you to run the entire test suite with `just check`.

Arch users can install all packages with 
`sudo pacman -S just typos`

> It is expected that all pull requests will have passed the test suite. They will be denied if they do not
