Hacker News new | ask | show | jobs
by anytime5704 684 days ago
I think the other commenter’s point is you can use 2 fields to distinguish between the first field being specified as empty vs absent (or whatever terms you prefer).

E.g.

- type.specified => “”

- type.unspecified => empty

The same technique can be used to disambiguate between 0 and empty.

2 comments

Worth noting that it’s not quite equivalent due to allowing for a malformed message that includes foo = value and hasFoo = false, opening the door to varied client interpretation.
But why would you do that over using the built-in StringValue, that just works and does everything you need?