From cb38c7581c20087503565428b65c8a5c9440f90b Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Fri, 29 Dec 2023 12:52:34 -0800 Subject: [PATCH] Split out codes --- codes.go | 265 ------------------------------------------------ codes/codes.go | 269 +++++++++++++++++++++++++++++++++++++++++++++++++ encode.go | 5 +- 3 files changed, 272 insertions(+), 267 deletions(-) delete mode 100644 codes.go create mode 100644 codes/codes.go diff --git a/codes.go b/codes.go deleted file mode 100644 index 4d3fc03..0000000 --- a/codes.go +++ /dev/null @@ -1,265 +0,0 @@ -package coding - -type code struct { - value uint16 - bits int -} - -var codes = [256]code{ - {value: 0b0000, bits: 4}, - {value: 0b0001, bits: 4}, - {value: 0b00100, bits: 5}, - {value: 0b00101, bits: 5}, - {value: 0b00110, bits: 5}, - {value: 0b00111, bits: 5}, - {value: 0b01000, bits: 5}, - {value: 0b01001, bits: 5}, - {value: 0b01010, bits: 5}, - {value: 0b01011, bits: 5}, - {value: 0b011000, bits: 6}, - {value: 0b011001, bits: 6}, - {value: 0b011010, bits: 6}, - {value: 0b011011, bits: 6}, - {value: 0b011100, bits: 6}, - {value: 0b011101, bits: 6}, - {value: 0b011110, bits: 6}, - {value: 0b011111, bits: 6}, - {value: 0b1000000, bits: 7}, - {value: 0b1000001, bits: 7}, - {value: 0b1000010, bits: 7}, - {value: 0b1000011, bits: 7}, - {value: 0b1000100, bits: 7}, - {value: 0b1000101, bits: 7}, - {value: 0b1000110, bits: 7}, - {value: 0b1000111, bits: 7}, - {value: 0b1001000, bits: 7}, - {value: 0b1001001, bits: 7}, - {value: 0b1001010, bits: 7}, - {value: 0b1001011, bits: 7}, - {value: 0b1001100, bits: 7}, - {value: 0b1001101, bits: 7}, - {value: 0b1001110, bits: 7}, - {value: 0b1001111, bits: 7}, - {value: 0b10100000, bits: 8}, - {value: 0b10100001, bits: 8}, - {value: 0b10100010, bits: 8}, - {value: 0b10100011, bits: 8}, - {value: 0b10100100, bits: 8}, - {value: 0b10100101, bits: 8}, - {value: 0b10100110, bits: 8}, - {value: 0b10100111, bits: 8}, - {value: 0b10101000, bits: 8}, - {value: 0b10101001, bits: 8}, - {value: 0b10101010, bits: 8}, - {value: 0b10101011, bits: 8}, - {value: 0b10101100, bits: 8}, - {value: 0b10101101, bits: 8}, - {value: 0b10101110, bits: 8}, - {value: 0b10101111, bits: 8}, - {value: 0b10110000, bits: 8}, - {value: 0b10110001, bits: 8}, - {value: 0b10110010, bits: 8}, - {value: 0b10110011, bits: 8}, - {value: 0b10110100, bits: 8}, - {value: 0b10110101, bits: 8}, - {value: 0b10110110, bits: 8}, - {value: 0b10110111, bits: 8}, - {value: 0b10111000, bits: 8}, - {value: 0b10111001, bits: 8}, - {value: 0b10111010, bits: 8}, - {value: 0b10111011, bits: 8}, - {value: 0b10111100, bits: 8}, - {value: 0b10111101, bits: 8}, - {value: 0b10111110, bits: 8}, - {value: 0b10111111, bits: 8}, - {value: 0b110000000, bits: 9}, - {value: 0b110000001, bits: 9}, - {value: 0b110000010, bits: 9}, - {value: 0b110000011, bits: 9}, - {value: 0b110000100, bits: 9}, - {value: 0b110000101, bits: 9}, - {value: 0b110000110, bits: 9}, - {value: 0b110000111, bits: 9}, - {value: 0b110001000, bits: 9}, - {value: 0b110001001, bits: 9}, - {value: 0b110001010, bits: 9}, - {value: 0b110001011, bits: 9}, - {value: 0b110001100, bits: 9}, - {value: 0b110001101, bits: 9}, - {value: 0b110001110, bits: 9}, - {value: 0b110001111, bits: 9}, - {value: 0b110010000, bits: 9}, - {value: 0b110010001, bits: 9}, - {value: 0b110010010, bits: 9}, - {value: 0b110010011, bits: 9}, - {value: 0b110010100, bits: 9}, - {value: 0b110010101, bits: 9}, - {value: 0b110010110, bits: 9}, - {value: 0b110010111, bits: 9}, - {value: 0b110011000, bits: 9}, - {value: 0b110011001, bits: 9}, - {value: 0b110011010, bits: 9}, - {value: 0b110011011, bits: 9}, - {value: 0b110011100, bits: 9}, - {value: 0b110011101, bits: 9}, - {value: 0b110011110, bits: 9}, - {value: 0b110011111, bits: 9}, - {value: 0b110100000, bits: 9}, - {value: 0b110100001, bits: 9}, - {value: 0b110100010, bits: 9}, - {value: 0b110100011, bits: 9}, - {value: 0b110100100, bits: 9}, - {value: 0b110100101, bits: 9}, - {value: 0b110100110, bits: 9}, - {value: 0b110100111, bits: 9}, - {value: 0b110101000, bits: 9}, - {value: 0b110101001, bits: 9}, - {value: 0b110101010, bits: 9}, - {value: 0b110101011, bits: 9}, - {value: 0b110101100, bits: 9}, - {value: 0b110101101, bits: 9}, - {value: 0b110101110, bits: 9}, - {value: 0b110101111, bits: 9}, - {value: 0b110110000, bits: 9}, - {value: 0b110110001, bits: 9}, - {value: 0b110110010, bits: 9}, - {value: 0b110110011, bits: 9}, - {value: 0b110110100, bits: 9}, - {value: 0b110110101, bits: 9}, - {value: 0b110110110, bits: 9}, - {value: 0b110110111, bits: 9}, - {value: 0b110111000, bits: 9}, - {value: 0b110111001, bits: 9}, - {value: 0b110111010, bits: 9}, - {value: 0b110111011, bits: 9}, - {value: 0b110111100, bits: 9}, - {value: 0b110111101, bits: 9}, - {value: 0b110111110, bits: 9}, - {value: 0b110111111, bits: 9}, - {value: 0b1110000000, bits: 10}, - {value: 0b1110000001, bits: 10}, - {value: 0b1110000010, bits: 10}, - {value: 0b1110000011, bits: 10}, - {value: 0b1110000100, bits: 10}, - {value: 0b1110000101, bits: 10}, - {value: 0b1110000110, bits: 10}, - {value: 0b1110000111, bits: 10}, - {value: 0b1110001000, bits: 10}, - {value: 0b1110001001, bits: 10}, - {value: 0b1110001010, bits: 10}, - {value: 0b1110001011, bits: 10}, - {value: 0b1110001100, bits: 10}, - {value: 0b1110001101, bits: 10}, - {value: 0b1110001110, bits: 10}, - {value: 0b1110001111, bits: 10}, - {value: 0b1110010000, bits: 10}, - {value: 0b1110010001, bits: 10}, - {value: 0b1110010010, bits: 10}, - {value: 0b1110010011, bits: 10}, - {value: 0b1110010100, bits: 10}, - {value: 0b1110010101, bits: 10}, - {value: 0b1110010110, bits: 10}, - {value: 0b1110010111, bits: 10}, - {value: 0b1110011000, bits: 10}, - {value: 0b1110011001, bits: 10}, - {value: 0b1110011010, bits: 10}, - {value: 0b1110011011, bits: 10}, - {value: 0b1110011100, bits: 10}, - {value: 0b1110011101, bits: 10}, - {value: 0b1110011110, bits: 10}, - {value: 0b1110011111, bits: 10}, - {value: 0b1110100000, bits: 10}, - {value: 0b1110100001, bits: 10}, - {value: 0b1110100010, bits: 10}, - {value: 0b1110100011, bits: 10}, - {value: 0b1110100100, bits: 10}, - {value: 0b1110100101, bits: 10}, - {value: 0b1110100110, bits: 10}, - {value: 0b1110100111, bits: 10}, - {value: 0b1110101000, bits: 10}, - {value: 0b1110101001, bits: 10}, - {value: 0b1110101010, bits: 10}, - {value: 0b1110101011, bits: 10}, - {value: 0b1110101100, bits: 10}, - {value: 0b1110101101, bits: 10}, - {value: 0b1110101110, bits: 10}, - {value: 0b1110101111, bits: 10}, - {value: 0b1110110000, bits: 10}, - {value: 0b1110110001, bits: 10}, - {value: 0b1110110010, bits: 10}, - {value: 0b1110110011, bits: 10}, - {value: 0b1110110100, bits: 10}, - {value: 0b1110110101, bits: 10}, - {value: 0b1110110110, bits: 10}, - {value: 0b1110110111, bits: 10}, - {value: 0b1110111000, bits: 10}, - {value: 0b1110111001, bits: 10}, - {value: 0b1110111010, bits: 10}, - {value: 0b1110111011, bits: 10}, - {value: 0b1110111100, bits: 10}, - {value: 0b1110111101, bits: 10}, - {value: 0b1110111110, bits: 10}, - {value: 0b1110111111, bits: 10}, - {value: 0b1111000000, bits: 10}, - {value: 0b1111000001, bits: 10}, - {value: 0b1111000010, bits: 10}, - {value: 0b1111000011, bits: 10}, - {value: 0b1111000100, bits: 10}, - {value: 0b1111000101, bits: 10}, - {value: 0b1111000110, bits: 10}, - {value: 0b1111000111, bits: 10}, - {value: 0b1111001000, bits: 10}, - {value: 0b1111001001, bits: 10}, - {value: 0b1111001010, bits: 10}, - {value: 0b1111001011, bits: 10}, - {value: 0b1111001100, bits: 10}, - {value: 0b1111001101, bits: 10}, - {value: 0b1111001110, bits: 10}, - {value: 0b1111001111, bits: 10}, - {value: 0b1111010000, bits: 10}, - {value: 0b1111010001, bits: 10}, - {value: 0b1111010010, bits: 10}, - {value: 0b1111010011, bits: 10}, - {value: 0b1111010100, bits: 10}, - {value: 0b1111010101, bits: 10}, - {value: 0b1111010110, bits: 10}, - {value: 0b1111010111, bits: 10}, - {value: 0b1111011000, bits: 10}, - {value: 0b1111011001, bits: 10}, - {value: 0b1111011010, bits: 10}, - {value: 0b1111011011, bits: 10}, - {value: 0b1111011100, bits: 10}, - {value: 0b1111011101, bits: 10}, - {value: 0b1111011110, bits: 10}, - {value: 0b1111011111, bits: 10}, - {value: 0b1111100000, bits: 10}, - {value: 0b1111100001, bits: 10}, - {value: 0b1111100010, bits: 10}, - {value: 0b1111100011, bits: 10}, - {value: 0b1111100100, bits: 10}, - {value: 0b1111100101, bits: 10}, - {value: 0b1111100110, bits: 10}, - {value: 0b1111100111, bits: 10}, - {value: 0b1111101000, bits: 10}, - {value: 0b1111101001, bits: 10}, - {value: 0b1111101010, bits: 10}, - {value: 0b1111101011, bits: 10}, - {value: 0b1111101100, bits: 10}, - {value: 0b1111101101, bits: 10}, - {value: 0b1111101110, bits: 10}, - {value: 0b1111101111, bits: 10}, - {value: 0b1111110000, bits: 10}, - {value: 0b1111110001, bits: 10}, - {value: 0b1111110010, bits: 10}, - {value: 0b1111110011, bits: 10}, - {value: 0b1111110100, bits: 10}, - {value: 0b1111110101, bits: 10}, - {value: 0b1111110110, bits: 10}, - {value: 0b1111110111, bits: 10}, - {value: 0b1111111000, bits: 10}, - {value: 0b1111111001, bits: 10}, - {value: 0b1111111010, bits: 10}, - {value: 0b1111111011, bits: 10}, - {value: 0b1111111100, bits: 10}, - {value: 0b1111111101, bits: 10}, -} diff --git a/codes/codes.go b/codes/codes.go new file mode 100644 index 0000000..a38ae22 --- /dev/null +++ b/codes/codes.go @@ -0,0 +1,269 @@ +package codes + +type Code struct { + Value uint16 + Bits int +} + +var codes = [256]Code{ + {Value: 0b0000, Bits: 4}, + {Value: 0b0001, Bits: 4}, + {Value: 0b00100, Bits: 5}, + {Value: 0b00101, Bits: 5}, + {Value: 0b00110, Bits: 5}, + {Value: 0b00111, Bits: 5}, + {Value: 0b01000, Bits: 5}, + {Value: 0b01001, Bits: 5}, + {Value: 0b01010, Bits: 5}, + {Value: 0b01011, Bits: 5}, + {Value: 0b011000, Bits: 6}, + {Value: 0b011001, Bits: 6}, + {Value: 0b011010, Bits: 6}, + {Value: 0b011011, Bits: 6}, + {Value: 0b011100, Bits: 6}, + {Value: 0b011101, Bits: 6}, + {Value: 0b011110, Bits: 6}, + {Value: 0b011111, Bits: 6}, + {Value: 0b1000000, Bits: 7}, + {Value: 0b1000001, Bits: 7}, + {Value: 0b1000010, Bits: 7}, + {Value: 0b1000011, Bits: 7}, + {Value: 0b1000100, Bits: 7}, + {Value: 0b1000101, Bits: 7}, + {Value: 0b1000110, Bits: 7}, + {Value: 0b1000111, Bits: 7}, + {Value: 0b1001000, Bits: 7}, + {Value: 0b1001001, Bits: 7}, + {Value: 0b1001010, Bits: 7}, + {Value: 0b1001011, Bits: 7}, + {Value: 0b1001100, Bits: 7}, + {Value: 0b1001101, Bits: 7}, + {Value: 0b1001110, Bits: 7}, + {Value: 0b1001111, Bits: 7}, + {Value: 0b10100000, Bits: 8}, + {Value: 0b10100001, Bits: 8}, + {Value: 0b10100010, Bits: 8}, + {Value: 0b10100011, Bits: 8}, + {Value: 0b10100100, Bits: 8}, + {Value: 0b10100101, Bits: 8}, + {Value: 0b10100110, Bits: 8}, + {Value: 0b10100111, Bits: 8}, + {Value: 0b10101000, Bits: 8}, + {Value: 0b10101001, Bits: 8}, + {Value: 0b10101010, Bits: 8}, + {Value: 0b10101011, Bits: 8}, + {Value: 0b10101100, Bits: 8}, + {Value: 0b10101101, Bits: 8}, + {Value: 0b10101110, Bits: 8}, + {Value: 0b10101111, Bits: 8}, + {Value: 0b10110000, Bits: 8}, + {Value: 0b10110001, Bits: 8}, + {Value: 0b10110010, Bits: 8}, + {Value: 0b10110011, Bits: 8}, + {Value: 0b10110100, Bits: 8}, + {Value: 0b10110101, Bits: 8}, + {Value: 0b10110110, Bits: 8}, + {Value: 0b10110111, Bits: 8}, + {Value: 0b10111000, Bits: 8}, + {Value: 0b10111001, Bits: 8}, + {Value: 0b10111010, Bits: 8}, + {Value: 0b10111011, Bits: 8}, + {Value: 0b10111100, Bits: 8}, + {Value: 0b10111101, Bits: 8}, + {Value: 0b10111110, Bits: 8}, + {Value: 0b10111111, Bits: 8}, + {Value: 0b110000000, Bits: 9}, + {Value: 0b110000001, Bits: 9}, + {Value: 0b110000010, Bits: 9}, + {Value: 0b110000011, Bits: 9}, + {Value: 0b110000100, Bits: 9}, + {Value: 0b110000101, Bits: 9}, + {Value: 0b110000110, Bits: 9}, + {Value: 0b110000111, Bits: 9}, + {Value: 0b110001000, Bits: 9}, + {Value: 0b110001001, Bits: 9}, + {Value: 0b110001010, Bits: 9}, + {Value: 0b110001011, Bits: 9}, + {Value: 0b110001100, Bits: 9}, + {Value: 0b110001101, Bits: 9}, + {Value: 0b110001110, Bits: 9}, + {Value: 0b110001111, Bits: 9}, + {Value: 0b110010000, Bits: 9}, + {Value: 0b110010001, Bits: 9}, + {Value: 0b110010010, Bits: 9}, + {Value: 0b110010011, Bits: 9}, + {Value: 0b110010100, Bits: 9}, + {Value: 0b110010101, Bits: 9}, + {Value: 0b110010110, Bits: 9}, + {Value: 0b110010111, Bits: 9}, + {Value: 0b110011000, Bits: 9}, + {Value: 0b110011001, Bits: 9}, + {Value: 0b110011010, Bits: 9}, + {Value: 0b110011011, Bits: 9}, + {Value: 0b110011100, Bits: 9}, + {Value: 0b110011101, Bits: 9}, + {Value: 0b110011110, Bits: 9}, + {Value: 0b110011111, Bits: 9}, + {Value: 0b110100000, Bits: 9}, + {Value: 0b110100001, Bits: 9}, + {Value: 0b110100010, Bits: 9}, + {Value: 0b110100011, Bits: 9}, + {Value: 0b110100100, Bits: 9}, + {Value: 0b110100101, Bits: 9}, + {Value: 0b110100110, Bits: 9}, + {Value: 0b110100111, Bits: 9}, + {Value: 0b110101000, Bits: 9}, + {Value: 0b110101001, Bits: 9}, + {Value: 0b110101010, Bits: 9}, + {Value: 0b110101011, Bits: 9}, + {Value: 0b110101100, Bits: 9}, + {Value: 0b110101101, Bits: 9}, + {Value: 0b110101110, Bits: 9}, + {Value: 0b110101111, Bits: 9}, + {Value: 0b110110000, Bits: 9}, + {Value: 0b110110001, Bits: 9}, + {Value: 0b110110010, Bits: 9}, + {Value: 0b110110011, Bits: 9}, + {Value: 0b110110100, Bits: 9}, + {Value: 0b110110101, Bits: 9}, + {Value: 0b110110110, Bits: 9}, + {Value: 0b110110111, Bits: 9}, + {Value: 0b110111000, Bits: 9}, + {Value: 0b110111001, Bits: 9}, + {Value: 0b110111010, Bits: 9}, + {Value: 0b110111011, Bits: 9}, + {Value: 0b110111100, Bits: 9}, + {Value: 0b110111101, Bits: 9}, + {Value: 0b110111110, Bits: 9}, + {Value: 0b110111111, Bits: 9}, + {Value: 0b1110000000, Bits: 10}, + {Value: 0b1110000001, Bits: 10}, + {Value: 0b1110000010, Bits: 10}, + {Value: 0b1110000011, Bits: 10}, + {Value: 0b1110000100, Bits: 10}, + {Value: 0b1110000101, Bits: 10}, + {Value: 0b1110000110, Bits: 10}, + {Value: 0b1110000111, Bits: 10}, + {Value: 0b1110001000, Bits: 10}, + {Value: 0b1110001001, Bits: 10}, + {Value: 0b1110001010, Bits: 10}, + {Value: 0b1110001011, Bits: 10}, + {Value: 0b1110001100, Bits: 10}, + {Value: 0b1110001101, Bits: 10}, + {Value: 0b1110001110, Bits: 10}, + {Value: 0b1110001111, Bits: 10}, + {Value: 0b1110010000, Bits: 10}, + {Value: 0b1110010001, Bits: 10}, + {Value: 0b1110010010, Bits: 10}, + {Value: 0b1110010011, Bits: 10}, + {Value: 0b1110010100, Bits: 10}, + {Value: 0b1110010101, Bits: 10}, + {Value: 0b1110010110, Bits: 10}, + {Value: 0b1110010111, Bits: 10}, + {Value: 0b1110011000, Bits: 10}, + {Value: 0b1110011001, Bits: 10}, + {Value: 0b1110011010, Bits: 10}, + {Value: 0b1110011011, Bits: 10}, + {Value: 0b1110011100, Bits: 10}, + {Value: 0b1110011101, Bits: 10}, + {Value: 0b1110011110, Bits: 10}, + {Value: 0b1110011111, Bits: 10}, + {Value: 0b1110100000, Bits: 10}, + {Value: 0b1110100001, Bits: 10}, + {Value: 0b1110100010, Bits: 10}, + {Value: 0b1110100011, Bits: 10}, + {Value: 0b1110100100, Bits: 10}, + {Value: 0b1110100101, Bits: 10}, + {Value: 0b1110100110, Bits: 10}, + {Value: 0b1110100111, Bits: 10}, + {Value: 0b1110101000, Bits: 10}, + {Value: 0b1110101001, Bits: 10}, + {Value: 0b1110101010, Bits: 10}, + {Value: 0b1110101011, Bits: 10}, + {Value: 0b1110101100, Bits: 10}, + {Value: 0b1110101101, Bits: 10}, + {Value: 0b1110101110, Bits: 10}, + {Value: 0b1110101111, Bits: 10}, + {Value: 0b1110110000, Bits: 10}, + {Value: 0b1110110001, Bits: 10}, + {Value: 0b1110110010, Bits: 10}, + {Value: 0b1110110011, Bits: 10}, + {Value: 0b1110110100, Bits: 10}, + {Value: 0b1110110101, Bits: 10}, + {Value: 0b1110110110, Bits: 10}, + {Value: 0b1110110111, Bits: 10}, + {Value: 0b1110111000, Bits: 10}, + {Value: 0b1110111001, Bits: 10}, + {Value: 0b1110111010, Bits: 10}, + {Value: 0b1110111011, Bits: 10}, + {Value: 0b1110111100, Bits: 10}, + {Value: 0b1110111101, Bits: 10}, + {Value: 0b1110111110, Bits: 10}, + {Value: 0b1110111111, Bits: 10}, + {Value: 0b1111000000, Bits: 10}, + {Value: 0b1111000001, Bits: 10}, + {Value: 0b1111000010, Bits: 10}, + {Value: 0b1111000011, Bits: 10}, + {Value: 0b1111000100, Bits: 10}, + {Value: 0b1111000101, Bits: 10}, + {Value: 0b1111000110, Bits: 10}, + {Value: 0b1111000111, Bits: 10}, + {Value: 0b1111001000, Bits: 10}, + {Value: 0b1111001001, Bits: 10}, + {Value: 0b1111001010, Bits: 10}, + {Value: 0b1111001011, Bits: 10}, + {Value: 0b1111001100, Bits: 10}, + {Value: 0b1111001101, Bits: 10}, + {Value: 0b1111001110, Bits: 10}, + {Value: 0b1111001111, Bits: 10}, + {Value: 0b1111010000, Bits: 10}, + {Value: 0b1111010001, Bits: 10}, + {Value: 0b1111010010, Bits: 10}, + {Value: 0b1111010011, Bits: 10}, + {Value: 0b1111010100, Bits: 10}, + {Value: 0b1111010101, Bits: 10}, + {Value: 0b1111010110, Bits: 10}, + {Value: 0b1111010111, Bits: 10}, + {Value: 0b1111011000, Bits: 10}, + {Value: 0b1111011001, Bits: 10}, + {Value: 0b1111011010, Bits: 10}, + {Value: 0b1111011011, Bits: 10}, + {Value: 0b1111011100, Bits: 10}, + {Value: 0b1111011101, Bits: 10}, + {Value: 0b1111011110, Bits: 10}, + {Value: 0b1111011111, Bits: 10}, + {Value: 0b1111100000, Bits: 10}, + {Value: 0b1111100001, Bits: 10}, + {Value: 0b1111100010, Bits: 10}, + {Value: 0b1111100011, Bits: 10}, + {Value: 0b1111100100, Bits: 10}, + {Value: 0b1111100101, Bits: 10}, + {Value: 0b1111100110, Bits: 10}, + {Value: 0b1111100111, Bits: 10}, + {Value: 0b1111101000, Bits: 10}, + {Value: 0b1111101001, Bits: 10}, + {Value: 0b1111101010, Bits: 10}, + {Value: 0b1111101011, Bits: 10}, + {Value: 0b1111101100, Bits: 10}, + {Value: 0b1111101101, Bits: 10}, + {Value: 0b1111101110, Bits: 10}, + {Value: 0b1111101111, Bits: 10}, + {Value: 0b1111110000, Bits: 10}, + {Value: 0b1111110001, Bits: 10}, + {Value: 0b1111110010, Bits: 10}, + {Value: 0b1111110011, Bits: 10}, + {Value: 0b1111110100, Bits: 10}, + {Value: 0b1111110101, Bits: 10}, + {Value: 0b1111110110, Bits: 10}, + {Value: 0b1111110111, Bits: 10}, + {Value: 0b1111111000, Bits: 10}, + {Value: 0b1111111001, Bits: 10}, + {Value: 0b1111111010, Bits: 10}, + {Value: 0b1111111011, Bits: 10}, + {Value: 0b1111111100, Bits: 10}, + {Value: 0b1111111101, Bits: 10}, +} + +func CodeForIndex(index int) Code { + return codes[index] +} diff --git a/encode.go b/encode.go index 9c34d98..4136a8a 100644 --- a/encode.go +++ b/encode.go @@ -5,6 +5,7 @@ import ( "github.com/icza/bitio" "github.com/samber/lo" + "github.com/securemesh/coding/codes" "github.com/securemesh/coding/heap" ) @@ -14,8 +15,8 @@ func Encode(h *heap.Heap, msg []byte) []byte { for _, b := range msg { index := h.IncrementSymbol(b) - code := codes[index] - lo.Must0(w.WriteBits(uint64(code.value), uint8(code.bits))) + code := codes.CodeForIndex(index) + lo.Must0(w.WriteBits(uint64(code.Value), uint8(code.Bits))) } lo.Must0(w.Close())