tsiemens/acb

Rust Rewrite

Closed this issue · 1 comments

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 using Decimal (Date also has this issue, but less problematically), we have to call Equal everywhere, but there's nothing preventing us from using ==. This is not an issue in rust, because you can implement Eq.

This issue can track the necessary bits and pieces that will need to be figured out before charging in.

Answered (probably):

Unanswered:

  • ???

This is pretty much done as of 56b9c1f I think. Just needs to be vetted a little more and merged