Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
We currently don't have a way to install a protobuf handler for an option field where the handler takes an Optional parameter of the 'option' field in the protobuf message. The goal is to be able to do:
example
message Person { required string name = 1; option uint32_t age = 2; } void person(const std::string& name, const Option<uint32_t>& age) { if (age.isSome()) { ... } } install<Person>( person, &Person::name, &Person::age);
We can then use this to test whether the field was provided, as opposed to capturing a reference to a default constructed value of the the type.
For now, the workaround is to use the take the entire message in the handler:
void person(const Person& person) { if (person.has_age()) { ... } } install<Person>(person);