#include #include #include #include "serif/utils/serialize/archive.hpp" /** @brief Produce independent C++ fixtures for the dependency-free Python data reader. */ int main(int argc, char** argv) { namespace serialization = serif::utils::serialize; if (argc != 2) { return 2; } const auto contents = serialization::pack(serialization::named("values", std::vector{-0.0, 1.2345678901234567, std::numeric_limits::denorm_min(), std::numeric_limits::infinity(), std::bit_cast(0x7ff8123456789abcULL)}), serialization::named("empty", std::vector{}), serialization::named("integers", std::vector{std::numeric_limits::min(), std::numeric_limits::max()}), serialization::named("label", std::string{"ΞΎ\n\"quote\"\\end"})); for (serialization::Format format : {serialization::Format::binary, serialization::Format::text}) { const auto path = std::filesystem::path{argv[1]} / (format == serialization::Format::binary ? "binary.serif" : "text.serif"); const auto result = serialization::write(path, contents, {.format = format, .author = "Cross-language regression"}); if (!result) { std::println(stderr, "{}: {}", result.error().path, result.error().message); return 1; } } return 0; }