repositorypackage
0.1.0
Repository: https://github.com/richinsley/purtybits.git
Documentation: pkg.go.dev
# README
Purty Bits
Package purtybits is a simple tool to format bytes into ANSI colorized binary
Download:
go get github.com/richinsley/purtybits
Usage:
package main
import (
"fmt"
"github.com/richinsley/purtybits"
)
func main() {
bytesPerRow := 4
purty := purtybits.NewPurtyBits(bytesPerRow, purtybits.HexCodeGroupToRight)
// create a custom color to color the hex values and open/close brackets
purty.HexCodeColor = &purtybits.PurtyBitColor{
BackgroundColor: purtybits.BackgroundBrightGreen,
ForegroundColor: purtybits.ForegroundBrightWhite,
Underline: true,
}
purty.ByteOpenBracketColor = &purtybits.PurtyBitColor{
BackgroundColor: purtybits.BackgroundBrightGreen,
ForegroundColor: purtybits.ForegroundBrightWhite,
Underline: true,
Character: "<",
}
purty.ByteCloseBracketColor = &purtybits.PurtyBitColor{
BackgroundColor: purtybits.BackgroundBrightGreen,
ForegroundColor: purtybits.ForegroundBrightWhite,
Underline: true,
Character: ">",
}
// buffer of arbitrary bytes we'll purty print
var buffer []uint8 = []uint8{0x01, 0x00, 0x01, 0xaa, 0xaa, 0xff, 0xff, 0x00}
// we want to color bit 3 and bits 23-30 and red
// v v-------v
// 00000001|00000000|00000001|10101010|10101010|11111111|11111111|00000000
purty.ColorBitRange(23, 30, purtybits.PurtyBitColorWhiteOnRed("1"), purtybits.PurtyBitColorBlackOnRed("0"))
purty.ColorBitRange(3, 3, purtybits.PurtyBitColorWhiteOnRed("1"), purtybits.PurtyBitColorBlackOnRed("0"))
// generate and display the purty printed rows
fmt.Println("HexCodeGroupToRight:")
purtyrows := purty.BufferToStrings(buffer)
for _, s := range purtyrows {
fmt.Println(s)
}
fmt.Println()
// switch hex code placement to HexCodeLeftOfValue and generate again
purty.HexCodePlacement = purtybits.HexCodeLeftOfValue
fmt.Println("HexCodeLeftOfValue:")
purtyrows = purty.BufferToStrings(buffer)
for _, s := range purtyrows {
fmt.Println(s)
}
}
Output: