I was skeptical of X-Pipe at first, but after setting it up to access a remote docker container running Postgres that wasn't listening on a publicly accessible port, I can say that no other tool gets out of my way as fast as XPipe so I easily manage my machines and databases.
One nuance missing from the article is that since branded / tagged types extend from the base type, callers can still see and use string methods, which may not be what you want.
Equality can be problematic too. Imagine an Extension type, one could compare it with ".mp4" or "mp4", which one is correct?
Opaque types (that extend from `unknown` instead of T) work around these problems by forcing users through selector functions.
Isn't there a risk with this approach that you may receive input with a repeated prefix when there's a variable of type `string` and the prefix is prepended to satisfy the type checker without checking if the prefix already exists?
Thanks for sharing, very inspiring. I love Rust for parsing video game replays / save files. I've authored a Rocket League replay parser (boxcars) and an entire suite of web visualizations (via Webassembly) for EU4 called pdx.tools https://pdx.tools
It's not easy to work with proprietary formats, but they've both become pretty popular, so I would 100% recommend sinking more time into this project as long as it scratches your itch. Gamers are always looking for more stats and deeper insights
Very handy to update serde data structure and see all the typescript errors that after recompiling.
[0]: https://github.com/madonoharu/tsify