My Rust implementation of a Red-Black tree.
Before I started learning Rust, I mainly used Java and had only recently learned frontend development and completed a fullstack project right before this. When I started back in December of 2025, I chose to make a BST as my first Rust project because I had experience with building some from the ground up in Java and I believed this would be a quick way to learn a lot about Rust and take on its ownership and borrow rules.
The objective is to make a BST and Map trait (interface) that functions like how it is in Java. The way the BST is implemented does not have to exactly match its implementation in Java, but the behavior of the functions added in the Map trait should. Although a Map trait exists, I do not plan to make more implementations of Map. Only BST at this moment.
The current implementation is pointer-based. That was previously not the case when I first started. I had taken a break from the project entering January, and I worked on other Rust projects. When I came back to this project, I decided to make the switch after learning a bit more about pointers.