19#include <sertial/core/layout/struct_layout_reflector.hpp>
21#include <rfl/json.hpp>
60template<
typename UserRegistry>
117 template<
typename T,
typename Writer = rfl::json::Writer>
120 return rfl::json::write(Schema{});
157 template<
typename Writer = rfl::json::Writer>
159 using PayloadTuple =
typename UserRegistry::PayloadTypes;
160 return export_all_impl<Writer>(PayloadTuple{});
189 template<
typename Writer = rfl::json::Writer>
191 auto data = export_all<Writer>();
192 std::ofstream file(filename);
194 throw std::runtime_error(
"Failed to open file: " + filename);
209 template<
typename Writer,
typename... PayloadTypes>
210 static std::string export_all_impl(std::tuple<PayloadTypes...>) {
212 auto all_schemas = std::make_tuple(
217 return rfl::json::write(all_schemas);
Complete schema combining CommRaT metadata with SeRTial layout.
CommRaT - Modern C++ Real-Time Communication Framework.
Registry-wide introspection and schema export.
static void write_to_file(const std::string &filename)
Convenience: write all schemas to file.
static std::string export_all()
Export complete schemas for all registered messages.
static std::string export_as()
Export complete schema for a message type.
Complete schema for a CommRaT message type.