@@ -47,11 +47,14 @@ const itemTypes = [
47
47
"derive" ,
48
48
"traitalias" , // 25
49
49
"generic" ,
50
+ "crate" ,
50
51
] ;
51
52
52
53
// used for special search precedence
53
54
const TY_GENERIC = itemTypes . indexOf ( "generic" ) ;
54
55
const TY_IMPORT = itemTypes . indexOf ( "import" ) ;
56
+ // minor hack to implement the `crate:` syntax
57
+ const TY_CRATE = itemTypes . indexOf ( "crate" ) ;
55
58
const ROOT_PATH = typeof window !== "undefined" ? window . rootPath : "../" ;
56
59
57
60
// Hard limit on how deep to recurse into generics when doing type-driven search.
@@ -1799,6 +1802,7 @@ class DocSearch {
1799
1802
correction : null ,
1800
1803
proposeCorrectionFrom : null ,
1801
1804
proposeCorrectionTo : null ,
1805
+ filterCrates : null ,
1802
1806
// bloom filter build from type ids
1803
1807
typeFingerprint : new Uint32Array ( 4 ) ,
1804
1808
} ;
@@ -1926,6 +1930,19 @@ class DocSearch {
1926
1930
query . error = err ;
1927
1931
return query ;
1928
1932
}
1933
+
1934
+ const nonCrateElems = query . elems . filter ( function ( elem ) {
1935
+ if ( elem . typeFilter === TY_CRATE ) {
1936
+ query . filterCrates = elem . name ;
1937
+ return false ;
1938
+ }
1939
+ return true ;
1940
+ } ) ;
1941
+ if ( nonCrateElems . length !== query . elems . length ) {
1942
+ query . elems = nonCrateElems ;
1943
+ query . userQuery = query . elems . join ( ", " ) ;
1944
+ }
1945
+
1929
1946
if ( ! query . literalSearch ) {
1930
1947
// If there is more than one element in the query, we switch to literalSearch in any
1931
1948
// case.
@@ -3713,6 +3730,9 @@ async function search(forced) {
3713
3730
3714
3731
const params = searchState . getQueryStringParams ( ) ;
3715
3732
3733
+ if ( query . filterCrates !== null ) {
3734
+ filterCrates = query . filterCrates ;
3735
+ }
3716
3736
// In case we have no information about the saved crate and there is a URL query parameter,
3717
3737
// we override it with the URL query parameter.
3718
3738
if ( filterCrates === null && params [ "filter-crate" ] !== undefined ) {
0 commit comments