Buckets:
| function con(n) { | |
| return 0x80 | (n & 0x3f); | |
| } | |
| export function encode(str) { | |
| const arr = str.split("").map((x) => x.charCodeAt(0)); | |
| return _encode(arr); | |
| } | |
| function _encode(arr) { | |
| if (arr.length === 0) { | |
| return []; | |
| } | |
| const [n, ...ns] = arr; | |
| if (n < 0) { | |
| throw new Error("utf8"); | |
| } | |
| if (n < 0x80) { | |
| return [n, ..._encode(ns)]; | |
| } | |
| if (n < 0x800) { | |
| return [0xc0 | (n >>> 6), con(n), ..._encode(ns)]; | |
| } | |
| if (n < 0x10000) { | |
| return [0xe0 | (n >>> 12), con(n >>> 6), con(n), ..._encode(ns)]; | |
| } | |
| if (n < 0x110000) { | |
| return [ | |
| 0xf0 | (n >>> 18), | |
| con(n >>> 12), | |
| con(n >>> 6), | |
| con(n), | |
| ..._encode(ns), | |
| ]; | |
| } | |
| throw new Error("utf8"); | |
| } | |
Xet Storage Details
- Size:
- 716 Bytes
- Xet hash:
- e6682d6ba90727062f7a9a18ed765a27b914430afdb9d9a96d7e81e4865f43d3
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.