#pragma once #include "VersionedMap.h" #include #include #include #include inline void printBinary(const weaselab::VersionedMap::Key k) { for (int i = 0; i < k.len; ++i) { auto c = k.p[i]; if (isprint(c)) { printf("%c", c); } else { printf("x%02x", c); } } } inline void printMutation(const weaselab::VersionedMap::Iterator::VersionedMutation &m) { switch (m.type) { case weaselab::VersionedMap::Set: printf("set "); printBinary({m.param1, m.param1Len}); printf(" -> '"); printBinary({m.param2, m.param2Len}); printf("' @ %" PRId64 "\n", m.notModifiedSince); break; case weaselab::VersionedMap::Clear: printf("clear ["); printBinary({m.param1, m.param1Len}); printf(", "); printBinary({m.param2, m.param2Len}); printf(") @ %" PRId64 "\n", m.notModifiedSince); break; default: // GCOVR_EXCL_LINE assert(false); // GCOVR_EXCL_LINE } }