summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/couchbase/vellum/common.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/couchbase/vellum/common.go')
-rw-r--r--vendor/github.com/couchbase/vellum/common.go547
1 files changed, 547 insertions, 0 deletions
diff --git a/vendor/github.com/couchbase/vellum/common.go b/vendor/github.com/couchbase/vellum/common.go
new file mode 100644
index 0000000000..cd3e6a0d0b
--- /dev/null
+++ b/vendor/github.com/couchbase/vellum/common.go
@@ -0,0 +1,547 @@
+// Copyright (c) 2017 Couchbase, Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package vellum
+
+const maxCommon = 1<<6 - 1
+
+func encodeCommon(in byte) byte {
+ val := byte((int(commonInputs[in]) + 1) % 256)
+ if val > maxCommon {
+ return 0
+ }
+ return val
+}
+
+func decodeCommon(in byte) byte {
+ return commonInputsInv[in-1]
+}
+
+var commonInputs = []byte{
+ 84, // '\x00'
+ 85, // '\x01'
+ 86, // '\x02'
+ 87, // '\x03'
+ 88, // '\x04'
+ 89, // '\x05'
+ 90, // '\x06'
+ 91, // '\x07'
+ 92, // '\x08'
+ 93, // '\t'
+ 94, // '\n'
+ 95, // '\x0b'
+ 96, // '\x0c'
+ 97, // '\r'
+ 98, // '\x0e'
+ 99, // '\x0f'
+ 100, // '\x10'
+ 101, // '\x11'
+ 102, // '\x12'
+ 103, // '\x13'
+ 104, // '\x14'
+ 105, // '\x15'
+ 106, // '\x16'
+ 107, // '\x17'
+ 108, // '\x18'
+ 109, // '\x19'
+ 110, // '\x1a'
+ 111, // '\x1b'
+ 112, // '\x1c'
+ 113, // '\x1d'
+ 114, // '\x1e'
+ 115, // '\x1f'
+ 116, // ' '
+ 80, // '!'
+ 117, // '"'
+ 118, // '#'
+ 79, // '$'
+ 39, // '%'
+ 30, // '&'
+ 81, // "'"
+ 75, // '('
+ 74, // ')'
+ 82, // '*'
+ 57, // '+'
+ 66, // ','
+ 16, // '-'
+ 12, // '.'
+ 2, // '/'
+ 19, // '0'
+ 20, // '1'
+ 21, // '2'
+ 27, // '3'
+ 32, // '4'
+ 29, // '5'
+ 35, // '6'
+ 36, // '7'
+ 37, // '8'
+ 34, // '9'
+ 24, // ':'
+ 73, // ';'
+ 119, // '<'
+ 23, // '='
+ 120, // '>'
+ 40, // '?'
+ 83, // '@'
+ 44, // 'A'
+ 48, // 'B'
+ 42, // 'C'
+ 43, // 'D'
+ 49, // 'E'
+ 46, // 'F'
+ 62, // 'G'
+ 61, // 'H'
+ 47, // 'I'
+ 69, // 'J'
+ 68, // 'K'
+ 58, // 'L'
+ 56, // 'M'
+ 55, // 'N'
+ 59, // 'O'
+ 51, // 'P'
+ 72, // 'Q'
+ 54, // 'R'
+ 45, // 'S'
+ 52, // 'T'
+ 64, // 'U'
+ 65, // 'V'
+ 63, // 'W'
+ 71, // 'X'
+ 67, // 'Y'
+ 70, // 'Z'
+ 77, // '['
+ 121, // '\\'
+ 78, // ']'
+ 122, // '^'
+ 31, // '_'
+ 123, // '`'
+ 4, // 'a'
+ 25, // 'b'
+ 9, // 'c'
+ 17, // 'd'
+ 1, // 'e'
+ 26, // 'f'
+ 22, // 'g'
+ 13, // 'h'
+ 7, // 'i'
+ 50, // 'j'
+ 38, // 'k'
+ 14, // 'l'
+ 15, // 'm'
+ 10, // 'n'
+ 3, // 'o'
+ 8, // 'p'
+ 60, // 'q'
+ 6, // 'r'
+ 5, // 's'
+ 0, // 't'
+ 18, // 'u'
+ 33, // 'v'
+ 11, // 'w'
+ 41, // 'x'
+ 28, // 'y'
+ 53, // 'z'
+ 124, // '{'
+ 125, // '|'
+ 126, // '}'
+ 76, // '~'
+ 127, // '\x7f'
+ 128, // '\x80'
+ 129, // '\x81'
+ 130, // '\x82'
+ 131, // '\x83'
+ 132, // '\x84'
+ 133, // '\x85'
+ 134, // '\x86'
+ 135, // '\x87'
+ 136, // '\x88'
+ 137, // '\x89'
+ 138, // '\x8a'
+ 139, // '\x8b'
+ 140, // '\x8c'
+ 141, // '\x8d'
+ 142, // '\x8e'
+ 143, // '\x8f'
+ 144, // '\x90'
+ 145, // '\x91'
+ 146, // '\x92'
+ 147, // '\x93'
+ 148, // '\x94'
+ 149, // '\x95'
+ 150, // '\x96'
+ 151, // '\x97'
+ 152, // '\x98'
+ 153, // '\x99'
+ 154, // '\x9a'
+ 155, // '\x9b'
+ 156, // '\x9c'
+ 157, // '\x9d'
+ 158, // '\x9e'
+ 159, // '\x9f'
+ 160, // '\xa0'
+ 161, // '¡'
+ 162, // '¢'
+ 163, // '£'
+ 164, // '¤'
+ 165, // '¥'
+ 166, // '¦'
+ 167, // '§'
+ 168, // '¨'
+ 169, // '©'
+ 170, // 'ª'
+ 171, // '«'
+ 172, // '¬'
+ 173, // '\xad'
+ 174, // '®'
+ 175, // '¯'
+ 176, // '°'
+ 177, // '±'
+ 178, // '²'
+ 179, // '³'
+ 180, // '´'
+ 181, // 'µ'
+ 182, // '¶'
+ 183, // '·'
+ 184, // '¸'
+ 185, // '¹'
+ 186, // 'º'
+ 187, // '»'
+ 188, // '¼'
+ 189, // '½'
+ 190, // '¾'
+ 191, // '¿'
+ 192, // 'À'
+ 193, // 'Á'
+ 194, // 'Â'
+ 195, // 'Ã'
+ 196, // 'Ä'
+ 197, // 'Å'
+ 198, // 'Æ'
+ 199, // 'Ç'
+ 200, // 'È'
+ 201, // 'É'
+ 202, // 'Ê'
+ 203, // 'Ë'
+ 204, // 'Ì'
+ 205, // 'Í'
+ 206, // 'Î'
+ 207, // 'Ï'
+ 208, // 'Ð'
+ 209, // 'Ñ'
+ 210, // 'Ò'
+ 211, // 'Ó'
+ 212, // 'Ô'
+ 213, // 'Õ'
+ 214, // 'Ö'
+ 215, // '×'
+ 216, // 'Ø'
+ 217, // 'Ù'
+ 218, // 'Ú'
+ 219, // 'Û'
+ 220, // 'Ü'
+ 221, // 'Ý'
+ 222, // 'Þ'
+ 223, // 'ß'
+ 224, // 'à'
+ 225, // 'á'
+ 226, // 'â'
+ 227, // 'ã'
+ 228, // 'ä'
+ 229, // 'å'
+ 230, // 'æ'
+ 231, // 'ç'
+ 232, // 'è'
+ 233, // 'é'
+ 234, // 'ê'
+ 235, // 'ë'
+ 236, // 'ì'
+ 237, // 'í'
+ 238, // 'î'
+ 239, // 'ï'
+ 240, // 'ð'
+ 241, // 'ñ'
+ 242, // 'ò'
+ 243, // 'ó'
+ 244, // 'ô'
+ 245, // 'õ'
+ 246, // 'ö'
+ 247, // '÷'
+ 248, // 'ø'
+ 249, // 'ù'
+ 250, // 'ú'
+ 251, // 'û'
+ 252, // 'ü'
+ 253, // 'ý'
+ 254, // 'þ'
+ 255, // 'ÿ'
+}
+
+var commonInputsInv = []byte{
+ 't',
+ 'e',
+ '/',
+ 'o',
+ 'a',
+ 's',
+ 'r',
+ 'i',
+ 'p',
+ 'c',
+ 'n',
+ 'w',
+ '.',
+ 'h',
+ 'l',
+ 'm',
+ '-',
+ 'd',
+ 'u',
+ '0',
+ '1',
+ '2',
+ 'g',
+ '=',
+ ':',
+ 'b',
+ 'f',
+ '3',
+ 'y',
+ '5',
+ '&',
+ '_',
+ '4',
+ 'v',
+ '9',
+ '6',
+ '7',
+ '8',
+ 'k',
+ '%',
+ '?',
+ 'x',
+ 'C',
+ 'D',
+ 'A',
+ 'S',
+ 'F',
+ 'I',
+ 'B',
+ 'E',
+ 'j',
+ 'P',
+ 'T',
+ 'z',
+ 'R',
+ 'N',
+ 'M',
+ '+',
+ 'L',
+ 'O',
+ 'q',
+ 'H',
+ 'G',
+ 'W',
+ 'U',
+ 'V',
+ ',',
+ 'Y',
+ 'K',
+ 'J',
+ 'Z',
+ 'X',
+ 'Q',
+ ';',
+ ')',
+ '(',
+ '~',
+ '[',
+ ']',
+ '$',
+ '!',
+ '\'',
+ '*',
+ '@',
+ '\x00',
+ '\x01',
+ '\x02',
+ '\x03',
+ '\x04',
+ '\x05',
+ '\x06',
+ '\x07',
+ '\x08',
+ '\t',
+ '\n',
+ '\x0b',
+ '\x0c',
+ '\r',
+ '\x0e',
+ '\x0f',
+ '\x10',
+ '\x11',
+ '\x12',
+ '\x13',
+ '\x14',
+ '\x15',
+ '\x16',
+ '\x17',
+ '\x18',
+ '\x19',
+ '\x1a',
+ '\x1b',
+ '\x1c',
+ '\x1d',
+ '\x1e',
+ '\x1f',
+ ' ',
+ '"',
+ '#',
+ '<',
+ '>',
+ '\\',
+ '^',
+ '`',
+ '{',
+ '|',
+ '}',
+ '\x7f',
+ '\x80',
+ '\x81',
+ '\x82',
+ '\x83',
+ '\x84',
+ '\x85',
+ '\x86',
+ '\x87',
+ '\x88',
+ '\x89',
+ '\x8a',
+ '\x8b',
+ '\x8c',
+ '\x8d',
+ '\x8e',
+ '\x8f',
+ '\x90',
+ '\x91',
+ '\x92',
+ '\x93',
+ '\x94',
+ '\x95',
+ '\x96',
+ '\x97',
+ '\x98',
+ '\x99',
+ '\x9a',
+ '\x9b',
+ '\x9c',
+ '\x9d',
+ '\x9e',
+ '\x9f',
+ '\xa0',
+ '\xa1',
+ '\xa2',
+ '\xa3',
+ '\xa4',
+ '\xa5',
+ '\xa6',
+ '\xa7',
+ '\xa8',
+ '\xa9',
+ '\xaa',
+ '\xab',
+ '\xac',
+ '\xad',
+ '\xae',
+ '\xaf',
+ '\xb0',
+ '\xb1',
+ '\xb2',
+ '\xb3',
+ '\xb4',
+ '\xb5',
+ '\xb6',
+ '\xb7',
+ '\xb8',
+ '\xb9',
+ '\xba',
+ '\xbb',
+ '\xbc',
+ '\xbd',
+ '\xbe',
+ '\xbf',
+ '\xc0',
+ '\xc1',
+ '\xc2',
+ '\xc3',
+ '\xc4',
+ '\xc5',
+ '\xc6',
+ '\xc7',
+ '\xc8',
+ '\xc9',
+ '\xca',
+ '\xcb',
+ '\xcc',
+ '\xcd',
+ '\xce',
+ '\xcf',
+ '\xd0',
+ '\xd1',
+ '\xd2',
+ '\xd3',
+ '\xd4',
+ '\xd5',
+ '\xd6',
+ '\xd7',
+ '\xd8',
+ '\xd9',
+ '\xda',
+ '\xdb',
+ '\xdc',
+ '\xdd',
+ '\xde',
+ '\xdf',
+ '\xe0',
+ '\xe1',
+ '\xe2',
+ '\xe3',
+ '\xe4',
+ '\xe5',
+ '\xe6',
+ '\xe7',
+ '\xe8',
+ '\xe9',
+ '\xea',
+ '\xeb',
+ '\xec',
+ '\xed',
+ '\xee',
+ '\xef',
+ '\xf0',
+ '\xf1',
+ '\xf2',
+ '\xf3',
+ '\xf4',
+ '\xf5',
+ '\xf6',
+ '\xf7',
+ '\xf8',
+ '\xf9',
+ '\xfa',
+ '\xfb',
+ '\xfc',
+ '\xfd',
+ '\xfe',
+ '\xff',
+}