diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2018-06-16 20:44:55 +0200 |
|---|---|---|
| committer | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2018-06-30 16:28:25 +0200 |
| commit | 115df577573ffba1534e9d04bc7b131bf32cffe8 (patch) | |
| tree | 372660d94cd0232dcb043cf6d4d1ecad0e4a4cee /src/librustdoc/html/static | |
| parent | bfc1ee4968ff5778cd80e12150f379ddfe6c2767 (diff) | |
reduce search-index size
Diffstat (limited to 'src/librustdoc/html/static')
| -rw-r--r-- | src/librustdoc/html/static/main.js | 46 |
1 files changed, 27 insertions, 19 deletions
diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js index 01eb1ce7407..f3c9ce42410 100644 --- a/src/librustdoc/html/static/main.js +++ b/src/librustdoc/html/static/main.js @@ -415,6 +415,10 @@ var currentResults, index, searchIndex; var MAX_LEV_DISTANCE = 3; var MAX_RESULTS = 200; + var GENERICS_DATA = 1; + var NAME = 0; + var INPUTS_DATA = 0; + var OUTPUT_DATA = 1; var params = getQueryStringParams(); // Populate search bar with query string search term when provided, @@ -603,8 +607,9 @@ // match as well. var lev_distance = MAX_LEV_DISTANCE + 1; if (val.generics.length > 0) { - if (obj.g && obj.g.length >= val.generics.length) { - var elems = obj.g.slice(0); + if (obj.length > GENERICS_DATA && + obj[GENERICS_DATA].length >= val.generics.length) { + var elems = obj[GENERICS_DATA].slice(0); var total = 0; var done = 0; // We need to find the type that matches the most to remove it in order @@ -636,11 +641,12 @@ // Check for type name and type generics (if any). function checkType(obj, val, literalSearch) { var lev_distance = MAX_LEV_DISTANCE + 1; - if (obj.n === val.name) { + if (obj[NAME] === val.name) { if (literalSearch === true) { if (val.generics && val.generics.length !== 0) { - if (obj.g && obj.length >= val.generics.length) { - var elems = obj.g.slice(0); + if (obj.length > GENERICS_DATA && + obj[GENERICS_DATA].length >= val.generics.length) { + var elems = obj[GENERICS_DATA].slice(0); var allFound = true; var x; @@ -664,7 +670,7 @@ } // If the type has generics but don't match, then it won't return at this point. // Otherwise, `checkGenerics` will return 0 and it'll return. - if (obj.g && obj.g.length !== 0) { + if (obj.length > GENERICS_DATA && obj[GENERICS_DATA].length !== 0) { var tmp_lev = checkGenerics(obj, val); if (tmp_lev <= MAX_LEV_DISTANCE) { return tmp_lev; @@ -675,22 +681,23 @@ } // Names didn't match so let's check if one of the generic types could. if (literalSearch === true) { - if (obj.g && obj.g.length > 0) { - for (var x = 0; x < obj.g.length; ++x) { - if (obj.g[x] === val.name) { + if (obj.length > GENERICS_DATA && obj[GENERICS_DATA].length > 0) { + for (var x = 0; x < obj[GENERICS_DATA].length; ++x) { + if (obj[GENERICS_DATA][x] === val.name) { return true; } } } return false; } - var lev_distance = Math.min(levenshtein(obj.n, val.name), lev_distance); + var lev_distance = Math.min(levenshtein(obj[NAME], val.name), + lev_distance); if (lev_distance <= MAX_LEV_DISTANCE) { lev_distance = Math.min(checkGenerics(obj, val), lev_distance); - } else if (obj.g && obj.g.length > 0) { + } else if (obj.length > GENERICS_DATA && obj[GENERICS_DATA].length > 0) { // We can check if the type we're looking for is inside the generics! - for (var x = 0; x < obj.g.length; ++x) { - lev_distance = Math.min(levenshtein(obj.g[x], val.name), + for (var x = 0; x < obj[GENERICS_DATA].length; ++x) { + lev_distance = Math.min(levenshtein(obj[GENERICS_DATA][x], val.name), lev_distance); } } @@ -702,9 +709,10 @@ function findArg(obj, val, literalSearch) { var lev_distance = MAX_LEV_DISTANCE + 1; - if (obj && obj.type && obj.type.i && obj.type.i.length > 0) { - for (var i = 0; i < obj.type.i.length; i++) { - var tmp = checkType(obj.type.i[i], val, literalSearch); + if (obj && obj.type && obj.type[INPUTS_DATA] && + obj.type[INPUTS_DATA].length > 0) { + for (var i = 0; i < obj.type[INPUTS_DATA].length; i++) { + var tmp = checkType(obj.type[INPUTS_DATA][i], val, literalSearch); if (literalSearch === true && tmp === true) { return true; } @@ -720,8 +728,8 @@ function checkReturned(obj, val, literalSearch) { var lev_distance = MAX_LEV_DISTANCE + 1; - if (obj && obj.type && obj.type.o) { - var tmp = checkType(obj.type.o, val, literalSearch); + if (obj && obj.type && obj.type.length > OUTPUT_DATA) { + var tmp = checkType(obj.type[OUTPUT_DATA], val, literalSearch); if (literalSearch === true && tmp === true) { return true; } @@ -866,7 +874,7 @@ var fullId = generateId(ty); // allow searching for void (no output) functions as well - var typeOutput = type.o ? type.o.name : ""; + var typeOutput = type.length > OUTPUT_DATA ? type[OUTPUT_DATA].name : ""; var returned = checkReturned(ty, output, true); if (output.name === "*" || returned === true) { var in_args = false; |
