template <class TSink, class InfoT> void Write(TSink & sink, InfoT const & i) { rw::Write(sink, i.m_tag); WriteVarUint(sink, i.m_offset); WriteVarUint(sink, i.m_size); }
void WriteVersion(Writer & w, uint64_t secondsSinceEpoch) { w.Write(MWM_PROLOG, ARRAY_SIZE(MWM_PROLOG)); // write inner data version WriteVarUint(w, static_cast<uint32_t>(Format::lastFormat)); WriteVarUint(w, secondsSinceEpoch); }
void WriteVersion(Writer & w, uint32_t versionDate) { w.Write(MWM_PROLOG, ARRAY_SIZE(MWM_PROLOG)); // write inner data version WriteVarUint(w, static_cast<uint32_t>(lastFormat)); WriteVarUint(w, versionDate); }
void Serialize(TSink & sink) const { auto const sz = static_cast<uint32_t>(m_metadata.size()); WriteVarUint(sink, sz); for (auto const & it : m_metadata) { WriteVarUint(sink, static_cast<uint32_t>(it.first)); utils::WriteString(sink, it.second); } }
std::enable_if_t<std::is_same<T, uint32_t>::value || std::is_same<T, uint64_t>::value> operator()( T t, char const * /* name */ = nullptr) const { WriteVarUint(m_sink, t); }