func generateFixedLiteralEncoding()

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
}