github.com/influx6/npkg@v0.8.8/nbytes/hexwriter.go (about) 1 package nbytes 2 3 import "io" 4 5 var lowerhex = "0123456789abcdef" 6 7 // HexWriter transforms the writes the incoming data in hex format. 8 type HexWriter struct { 9 io.Writer 10 } 11 12 // New returns a new instance of a HexWriter. 13 func New(w io.Writer) *HexWriter { 14 return &HexWriter{Writer: w} 15 } 16 17 // Write meets the io.Write interface Write method 18 func (hx HexWriter) Write(p []byte) (n int, err error) { 19 if len(p) == 0 { 20 return 21 } 22 23 var sod = []byte(`\x00`) 24 var b byte 25 26 for n, b = range p { 27 sod[2] = lowerhex[b/16] 28 sod[3] = lowerhex[b%16] 29 hx.Writer.Write(sod) 30 } 31 32 n++ 33 34 return 35 }