diff options
| author | gingerBill <bill@gingerbill.org> | 2021-08-31 22:21:13 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-08-31 22:21:13 +0100 |
| commit | 251da264ed6e0f039931683c7b0d4b97e88c8d99 (patch) | |
| tree | c7a9a088477d2452c2cf850458c62d994a211df6 /core/encoding/base64 | |
| parent | b176af27427a6c39448a71a8023e4a9877f0a51c (diff) | |
Remove unneeded semicolons from the core library
Diffstat (limited to 'core/encoding/base64')
| -rw-r--r-- | core/encoding/base64/base64.odin | 70 |
1 files changed, 35 insertions, 35 deletions
diff --git a/core/encoding/base64/base64.odin b/core/encoding/base64/base64.odin index 7c17a2860..ca509326b 100644 --- a/core/encoding/base64/base64.odin +++ b/core/encoding/base64/base64.odin @@ -16,9 +16,9 @@ ENC_TABLE := [64]byte { 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/', -}; +} -PADDING :: '='; +PADDING :: '=' DEC_TABLE := [128]int { -1, -1, -1, -1, -1, -1, -1, -1, @@ -37,61 +37,61 @@ DEC_TABLE := [128]int { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1, -}; +} encode :: proc(data: []byte, ENC_TBL := ENC_TABLE, allocator := context.allocator) -> string #no_bounds_check { - length := len(data); + length := len(data) if length == 0 { - return ""; + return "" } - out_length := ((4 * length / 3) + 3) &~ 3; - out := make([]byte, out_length, allocator); + out_length := ((4 * length / 3) + 3) &~ 3 + out := make([]byte, out_length, allocator) - c0, c1, c2, block: int; + c0, c1, c2, block: int for i, d := 0, 0; i < length; i, d = i + 3, d + 4 { - c0, c1, c2 = int(data[i]), -1, -1; + c0, c1, c2 = int(data[i]), -1, -1 if i + 1 < length { c1 = int(data[i + 1]); } if i + 2 < length { c2 = int(data[i + 2]); } - block = (c0 << 16) | (max(c1, 0) << 8) | max(c2, 0); + block = (c0 << 16) | (max(c1, 0) << 8) | max(c2, 0) - out[d] = ENC_TBL[block >> 18 & 63]; - out[d + 1] = ENC_TBL[block >> 12 & 63]; - out[d + 2] = c1 == -1 ? PADDING : ENC_TBL[block >> 6 & 63]; - out[d + 3] = c2 == -1 ? PADDING : ENC_TBL[block & 63]; + out[d] = ENC_TBL[block >> 18 & 63] + out[d + 1] = ENC_TBL[block >> 12 & 63] + out[d + 2] = c1 == -1 ? PADDING : ENC_TBL[block >> 6 & 63] + out[d + 3] = c2 == -1 ? PADDING : ENC_TBL[block & 63] } - return string(out); + return string(out) } decode :: proc(data: string, DEC_TBL := DEC_TABLE, allocator := context.allocator) -> []byte #no_bounds_check { - length := len(data); + length := len(data) if length == 0 { - return nil; + return nil } - pad_count := data[length - 1] == PADDING ? (data[length - 2] == PADDING ? 2 : 1) : 0; - out_length := ((length * 6) >> 3) - pad_count; - out := make([]byte, out_length, allocator); + pad_count := data[length - 1] == PADDING ? (data[length - 2] == PADDING ? 2 : 1) : 0 + out_length := ((length * 6) >> 3) - pad_count + out := make([]byte, out_length, allocator) - c0, c1, c2, c3: int; - b0, b1, b2: int; + c0, c1, c2, c3: int + b0, b1, b2: int for i, j := 0, 0; i < length; i, j = i + 4, j + 3 { - c0 = DEC_TBL[data[i]]; - c1 = DEC_TBL[data[i + 1]]; - c2 = DEC_TBL[data[i + 2]]; - c3 = DEC_TBL[data[i + 3]]; - - b0 = (c0 << 2) | (c1 >> 4); - b1 = (c1 << 4) | (c2 >> 2); - b2 = (c2 << 6) | c3; - - out[j] = byte(b0); - out[j + 1] = byte(b1); - out[j + 2] = byte(b2); + c0 = DEC_TBL[data[i]] + c1 = DEC_TBL[data[i + 1]] + c2 = DEC_TBL[data[i + 2]] + c3 = DEC_TBL[data[i + 3]] + + b0 = (c0 << 2) | (c1 >> 4) + b1 = (c1 << 4) | (c2 >> 2) + b2 = (c2 << 6) | c3 + + out[j] = byte(b0) + out[j + 1] = byte(b1) + out[j + 2] = byte(b2) } - return out; + return out } |