Conversão entre structs C (C ++ POD) e google protobufs?

Eu tenho código que atualmente passa por um monte de (e às vezes aninhado) C (ou C ++ Plain Old Data) estruturas e matrizes.

Eu gostaria de converter estes para / de protobufs do google. Eu poderia escrever manualmente o código que converte entre esses dois formatos, mas seria menos propenso a erros para gerar automaticamente esse código. Qual é a melhor maneira de fazer isso? (Isso seria fácil em uma linguagem com introspecção suficiente para iterar sobre os nomes das variáveis ​​de membro, mas este é o código C ++ que estamos falando)

Uma coisa que estou pensando é escrever código python que analisa as estruturas C e, em seguida, cospe um arquivo .proto, juntamente com o código C que copia de membro para membro (em qualquer direção) para todos os tipos, mas talvez exista um melhor caminho ... ou talvez haja outro IDL que já possa gerar:

arquivo .h contendo todos os tipos aninhadosarquivo .proto contendo equivalentesarquivo .c com funções que copiam a direção entre as estruturas C ++ que o arquivo .proto gera e as estruturas definidas no arquivo .h

questionAnswers(3)

yourAnswerToTheQuestion