Got so annoyed at all the parsing I needed to do in AoC that I created my own crate.
I feel like I spend most of my time trying to parse the advent of code inputs into something useful. So much so that I decided to make my own crate called "prse" (https://crates.io/crates/prse).
It allows you to easily parse strings using a similar format to the print style macros:
use prse::parse;
let input = "5 + -2 = 3";
let mut total = 0_i32;
let (lhs, rhs): (i32, i32) = parse!(input, "{} + {} = {total}");
assert_eq!(lhs + rhs, total);
I've got other features too such as the ability to parse into a Vec, error reporting and no-std support.
I'll be adding a benchmarking setup, the ability to parse into something else if the first parse fails and actually making my code look nice. But is there anything else I should think about adding?