They can’t because value is not exported. They must use the NewUsername function, which forces the validation.
In my opinion, this pattern breaks when the validation must return an error and everything becomes very verbose.
In my opinion, this pattern breaks when the validation must return an error and everything becomes very verbose.