#include "transit/transit_version.hpp" #include "base/logging.hpp" #include <cstdint> #include <exception> #include <limits> namespace transit { TransitVersion GetVersion(Reader & reader) { try { NonOwningReaderSource src(reader); uint16_t headerVersion = std::numeric_limits<uint16_t>::max(); ReadPrimitiveFromSource(src, headerVersion); CHECK_LESS(headerVersion, static_cast<uint16_t>(TransitVersion::Counter), ("Invalid transit header version.")); return static_cast<TransitVersion>(headerVersion); } catch (std::exception const & ex) { LOG(LERROR, ("Error reading header version from transit mwm section.", ex.what())); throw; } } } // namespace transit