#ifndef SLANG_HEX_DUMP_UTIL_H #define SLANG_HEX_DUMP_UTIL_H #include "slang-common.h" #include "slang-string.h" #include "slang-list.h" #include "../../slang.h" namespace Slang { struct HexDumpUtil { /// Dump data to writer, with lines starting with hex data static SlangResult dump(const List& data, int numBytesPerLine, ISlangWriter* writer); static SlangResult dump(const uint8_t* data, size_t dataCount, int numBytesPerLine, ISlangWriter* writer); /// Dump a single value static void dump(uint32_t value, ISlangWriter* writer); static SlangResult dumpWithMarkers(const List& data, int numBytesPerLine, ISlangWriter* writer); static SlangResult dumpWithMarkers(const uint8_t* data, size_t dataSize, int numBytesPerLine, ISlangWriter* writer); /// Parses lines formatted by dump, back into bytes static SlangResult parse(const UnownedStringSlice& lines, List& outBytes); static SlangResult parseWithMarkers(const UnownedStringSlice& lines, List& outBytes); static SlangResult findStartAndEndLines(const UnownedStringSlice& lines, UnownedStringSlice& outStart, UnownedStringSlice& outEnd); }; } #endif