george-norton / headphones-toolbox

A UI for configuring Ploopy Headphones
GNU General Public License v3.0
24 stars 4 forks source link

Rust code refactor #5

Closed Igigog closed 10 months ago

Igigog commented 10 months ago

Uhh... It got out of hands, to be honest.

First of all, I love Toolbox. Great stuff, very well done.

I wanted to add some checks and stop randomly destroying my ears on bad configuration. Found some unconventional Rust code inside, so I started cleaning it up a bit; minor structure tweaks, little rusty abstractions, nothing exceptional. Ended up refactoring a big part of Filter's data model.

The change is kinda too big to review it all at once. Single commits are self-contained and mostly bite-sized, so it might be easier to review them instead. Also, feel free to cherry pick changes or deny these changes altogether; I understand it is kinda too much.

The program works as of last commit, and I tested it multiple times between commits. Still, I can't promise every single commit works, especially towards the later commits with bigger changes.

P.S. cargo fmt, Rust's default formatter, also had stuff to work on. Random formatting changes are on it. Please run it on your code regardless of this pull request, it's normally expected for Rust code to be formatted.

george-norton commented 10 months ago

Thanks very much! I will look through this when I get a chance. I am very much a C++ developer, this is my first attempt at any rust. So I am not surprised it's a bit of a mess!