Одни и те же данные в C++ почти всегда приходится проводить через несколько разных форматов — debug-вывод, YAML, binary, compact, protobuf — и без общей схемы каждый формат заводит свой собственный маппинг полей, который со временем расходится с остальными.
CONTRACT решает это одной декларацией на все форматы сразу: схема данных объявляется один раз, прямо в типе, и работает уже на этапе компиляции — без runtime-рефлексии и без ручного маппинга под каждый формат:
struct Customer {
std::uint32_t id;
std::string name;
CONTRACT(Customer,
(id, 1),
(name, 2)
)
};
Это и есть вся схема — не отдельный .proto-файл, не protoc, не сгенерированные .pb.hЧитать полностью »






