I started this project a while ago after an online friend asked me how he could delete all his images hosted on Imgur. While a simple script was enough to help him, I wanted to make the project as accessible as possible by making it a standalone executable. I made that project with TS/Node.js and was planning to package it. I tried to use projects like [PKG](https://github.com/vercel/pkg), but I kept having issues trying to package it. It wasn't able to package the [Open](https://www.npmjs.com/package/open) dependency and would have to be downloaded alongside the package.
Recently I just wanted to try out [the most loved language](https://survey.stackoverflow.co/2022/#technology-most-loved-dreaded-and-wanted) for myself and was looking for a project to get started with. This project seemed like the perfect fit since it also allows for easy distribution with cross-platform compilation.
So I decided to try Rust, and it worked like a charm.
Yes, I know this project could have also been done in many other (easier) ways, like:
Watching video's from [No Boilerplate](https://www.youtube.com/c/NoBoilerplate) motivated me to try out Rust. On advise about your Rust toolkit, he suggested the following Clippy lints:
For now I omit the `clippy::unwrap_used`. It's not great to use unwrap as often as I do, but I use it for getting things working. I'm sure I'll get better at making use of `Option` and `Result` in the future.
I tried to store the static strings in the `Cargo.toml`, but I figured it's not meant to live outside the code. Also tried to resolve `%USERPROFILE%` in the code but solved it with the `directories` crate.
I used https://transform.tools/json-to-rust-serde as a reference for the JSON structure.