rustdoc: use a string with one-character codes for search index types

$ wc -c search-index.old.js search-index.new.js
    3940530 search-index.old.js
    3843222 search-index.new.js

((3940530-3843222)/3940530)*100 = 2.47%

    $ wc -c search-index.old.js.gz search-index.new.js.gz
    380251 search-index.old.js.gz
    379434 search-index.new.js.gz

((380251-379434)/380251)*100 = 0.214%
This commit is contained in:
Michael Howell 2023-02-13 13:39:01 -07:00
parent 0b439b119b
commit a7b69ddea9
3 changed files with 16 additions and 5 deletions

View file

@ -1939,6 +1939,7 @@ function initSearch(rawSearchIndex) {
* @type {Array<string>}
*/
const searchWords = [];
const charA = "A".charCodeAt(0);
let i, word;
let currentIndex = 0;
let id = 0;
@ -1953,7 +1954,7 @@ function initSearch(rawSearchIndex) {
/**
* The raw search data for a given crate. `n`, `t`, `d`, and `q`, `i`, and `f`
* are arrays with the same length. n[i] contains the name of an item.
* t[i] contains the type of that item (as a small integer that represents an
* t[i] contains the type of that item (as a string of characters that represent an
* offset in `itemTypes`). d[i] contains the description of that item.
*
* q[i] contains the full path of the item, or an empty string indicating
@ -1980,7 +1981,7 @@ function initSearch(rawSearchIndex) {
* doc: string,
* a: Object,
* n: Array<string>,
* t: Array<Number>,
* t: String,
* d: Array<string>,
* q: Array<string>,
* i: Array<Number>,
@ -2009,7 +2010,7 @@ function initSearch(rawSearchIndex) {
searchIndex.push(crateRow);
currentIndex += 1;
// an array of (Number) item types
// a String of one character item type codes
const itemTypes = crateCorpus.t;
// an array of (String) item names
const itemNames = crateCorpus.n;
@ -2060,7 +2061,7 @@ function initSearch(rawSearchIndex) {
}
const row = {
crate: crate,
ty: itemTypes[i],
ty: itemTypes.charCodeAt(i) - charA,
name: itemNames[i],
path: itemPaths[i] ? itemPaths[i] : lastPath,
desc: itemDescs[i],