What kind of dump do you want? Text only - no hex will be displayed.
What kind of dump do you want? Text only - no hex will be displayed. Binary only - do you want hex? or binary bits? Mixed - show both hex/bits and text side by side
A dump is a sequence of dump lines.
A dump is a sequence of dump lines.
An optional first line is a header that numbers the bits/bytes An optional indicator line uses draw-characters to point at the significant part of the data - e.g., where in the dump the current element is. The data lines follow. They contain up to 3 sections (each of which is optional) an address, a hex/binary dump, a text dump.
If the kind includes charset that charset is used to display text. Decode errors will display as the Unicode replacement character. If no charset then text will be displayed as iso-8859-1, augmented by using glyph characters for the control C0 and C1 and any other non-glyph codepoint.
indicator info is a start position and length for the "region of interest". The units are in bits.
The shamStartBitAddress0b is the location where the data in the byteSource starts. E.g., the byte at byteSource.get(0) is from the data stream at the shamStartBitAddress0b.
The byte source is a window into the data stream.
If displaying ONLY text, then we just display one long line and replace any whitespace or non-glyph characters with glyph characters.
Hex/Bits and text dump formats for debug/trace purposes.
By definition this is a dump, so doesn't know much about where the fields in the data are. (To do that you'd need a format description language, like DFDL, but this is here to help debug DFDL descriptions, so it really cannot exploit any information about the data format)