in flexflate/huffman_code.go [49:82]
func generateFixedLiteralEncoding() *huffmanEncoder {
h := newHuffmanEncoder(maxLit)
codeBits := h.codeBits
code := h.code
var ch uint16
for ch = 0; ch < maxLit; ch++ {
var bits uint16
var size uint8
switch {
case ch < 144:
// size 8, 000110000 .. 10111111
bits = ch + 48
size = 8
break
case ch < 256:
// size 9, 110010000 .. 111111111
bits = ch + 400 - 144
size = 9
break
case ch < 280:
// size 7, 0000000 .. 0010111
bits = ch - 256
size = 7
break
default:
// size 8, 11000000 .. 11000111
bits = ch + 192 - 280
size = 8
}
codeBits[ch] = size
code[ch] = reverseBits(bits, size)
}
return h
}