Implement IT parser in Rust
task id: itparser-rust2024-08-05 09:15: Want to see how hard this is to do #itparser-rust
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?
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.