Rust Rewrite
Closed this issue · 1 comments
tsiemens commented
I may do this if I get bored or need another side-project.
Problem:
I have grown somewhat frustrated with golang over the years for a variety of reasons.
- Generics support is not very good, making optionals annoying
- Annoying default struct initialisation: The only way to enforce a struct initialisation invariant is to put the type into a different package than all the code using it. On top of this, it then gets really hard to init a struct in different ways. Rust's
Default
trait is way nicer. - Golang's absolutely insane and haphazard use of
Equal
, which doesn't overload the==
operator. This is straight up dangerous. Now that we're usingDecimal
(Date
also has this issue, but less problematically), we have to callEqual
everywhere, but there's nothing preventing us from using==
. This is not an issue in rust, because you can implementEq
.
This issue can track the necessary bits and pieces that will need to be figured out before charging in.
Answered (probably):
- Command line parsing: https://github.com/clap-rs/clap
- WASM: https://rustwasm.github.io/docs/book/
- Decimals: https://docs.rs/rust_decimal/latest/rust_decimal/
- CSVs: https://docs.rs/csv/latest/csv/
- Table rendering: https://github.com/zhiburt/tabled or https://github.com/RyanBluth/term-table-rs
- Yaml: https://github.com/chyh1990/yaml-rust
- https://github.com/serde-rs/json
Unanswered:
- ???