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