Implement IT parser in Rust

Implement IT parser in Rust

task id: itparser-rust

2024-08-05 09:15: Want to see how hard this is to do #itparser-rust

I think I know enough Rust where the "it's in Rust" part isn't all that challenging anymore. There is one definitive spec file for IT.

2024-08-05 09:33: taking a look at ITTECH.TXT #itparser-rust #timelog:01:08:43

2024-08-05 09:48: browsing IT files #itparser-rust

2024-08-05 10:25: Found an interesting IT file. adding. #itparser-rust

2024-08-05 10:29: Baby's first IT file. #itparser-rust

Just some sine pulses.

2024-08-05 11:04: Okay. that was kinda fun. #itparser-rust

2024-08-05 14:52: Attempts at an IT parser #itparser-rust #timelog:00:12:08

Didn't get far at all.

2024-08-05 19:37: Another attempt? Another attempt. #itparser-rust #timelog:00:27:02

2024-08-06 16:04: More stabs at the parser #itparser-rust #timelog:00:50:13

Got far enough to do some initial parsing of pattern data. Good enough for me for now.

2024-08-08 09:30: What's a good stopping point for this #itparser-rust

I think it would be nice to work this out in such a way that it exports JSON data for the patterns. Probably just low-level row information for now (Serde?). Later that can data can be analyzed by other programs to do things like extract notes and durations and so on.

2024-08-09 08:41: Sunsetting. I got far enough on this. #itparser-rust

It's a good proof of concept for a proof of concept. I can return to it later, if I need it.

2024-09-03 19:27: Back to this IT parser? #itparser-rust

Do I still remember any Rust? I've got leetcode brainrot.

I never really finished this one. So, now I'm going to put some more effort into this one.

2024-09-03 19:30: So many magic constants. yay. #itparser-rust

2024-09-03 19:32: we are going to do it right now. #itparser-rust

going to load things into a struct, create incremental unit tests. Maybe just one test is all that is needed right now.

2024-09-03 19:56: Well, now I am taking some steps back. #itparser-rust

Looking into burntsushi regex library in order to figure out how they set up tests.

2024-09-03 20:08: Ugh. What a rabbit hole #itparser-rust

I feel like I temporarily avoided this problem before. Now, I'm going to address it slightly more head-on.

2024-09-03 21:03: More cargo fighting #itparser-rust

2024-09-03 21:07: We got a test working in main. good enough #itparser-rust

2024-10-25 16:45: Future of this? #itparser-rust

It's kind of ad-hoc right now, and I don't have a defined purpose for this at the moment. Getting into schismtracker would be cool, and this could be a way to work with that data. But to what end?