The first point is kind of silly: You can make rust-style constructor functions if you want, and have a private constructor to enforce the behavior.
Although it does require some boilerplate, which may seem like pointless extra work.
Although it does require some boilerplate, which may seem like pointless extra work.
> [...] only to realise there the class has a private constructor or that there are static constructors which I should be using [...]