func createBitmapString()

in vhdInspectCmdHandler.go [445:473]


func createBitmapString(bitsPerLine int32, vBlockBitmap *bitmap.BitMap) string {
	var buffer bytes.Buffer
	pad := len(strconv.FormatInt(int64(vBlockBitmap.Length), 10))
	fmtLine := fmt.Sprintf("[%%-%dd - %%%dd]", pad, pad)
	for i := int32(0); i < vBlockBitmap.Length; {
		if i%bitsPerLine == 0 {
			if i < vBlockBitmap.Length-bitsPerLine {
				buffer.WriteString(fmt.Sprintf(fmtLine, i, i+bitsPerLine-1))
			} else {
				buffer.WriteString(fmt.Sprintf(fmtLine, i, vBlockBitmap.Length-1))
			}
		}

		b := byte(0)
		for j := uint32(0); j < 8; j++ {
			if dirty, _ := vBlockBitmap.Get(i); dirty {
				b |= byte(1 << (7 - j))
			}
			i++
		}
		buffer.WriteByte(' ')
		buffer.WriteString(fmt.Sprintf("%08b", b))
		if i%bitsPerLine == 0 {
			buffer.WriteString("\n")
		}
	}
	buffer.WriteString("\n")
	return buffer.String()
}