/
renath
/
organicmaps
Обзор
Документация
Войти
/
renath
/
organicmaps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
libs/coding/serdes_binary_header.hpp
57 строк
1 KB
Alexander Borsuk
clang-format
24 июл 2025, 15:48
24 июл 2025, 15:48
15b66d5
Код
Авторство
О чём код?
#pragma once #include "coding/reader.hpp" #include "coding/write_to_sink.hpp" #include <cstdint> namespace coding { namespace binary { struct HeaderSizeOfVisitor { void operator()(uint64_t v, char const * /* name */ = nullptr) { m_size += sizeof(v); } template <typename R> void operator()(R & r, char const * /* name */ = nullptr) { r.Visit(*this); } uint64_t m_size = 0; }; template <typename Sink> struct HeaderSerVisitor { HeaderSerVisitor(Sink & sink) : m_sink(sink) {} void operator()(uint64_t v, char const * /* name */ = nullptr) { WriteToSink(m_sink, v); } template <typename R> void operator()(R & r, char const * /* name */ = nullptr) { r.Visit(*this); } Sink & m_sink; }; template <typename Source> struct HeaderDesVisitor { HeaderDesVisitor(Source & source) : m_source(source) {} void operator()(uint64_t & v, char const * /* name */ = nullptr) { v = ReadPrimitiveFromSource<uint64_t>(m_source); } template <typename R> void operator()(R & r, char const * /* name */ = nullptr) { r.Visit(*this); } Source & m_source; }; } // namespace binary } // namespace coding