Right now, the parse generated while reading the Proto file needs a lot of manipulations before it is possible to generate descriptors from it. A lot of that work can actually happen in the parser, potentially speeding up the process. In particular:
Normalize names of inner messages.
Extract oneof fields into parent message.
Extract inner messages into a flat list.
Define proto_file_t struct which provides easy access to the entities in the Proto file, something along the lines of:
Most of this is done, but now it seems like there's a lot of duplication between types defined in helpers.h and in descriptors.h, in particular factory_t and field_info_t. Need to revisit this.
Right now, the parse generated while reading the Proto file needs a lot of manipulations before it is possible to generate descriptors from it. A lot of that work can actually happen in the parser, potentially speeding up the process. In particular:
oneof
fields into parent message.proto_file_t
struct which provides easy access to the entities in the Proto file, something along the lines of: