@@ -413,9 +413,9 @@ impl ToJson for Type {
413
413
match self . name {
414
414
Some ( ref name) => {
415
415
let mut data = BTreeMap :: new ( ) ;
416
- data. insert ( "name " . to_owned ( ) , name. to_json ( ) ) ;
416
+ data. insert ( "n " . to_owned ( ) , name. to_json ( ) ) ;
417
417
if let Some ( ref generics) = self . generics {
418
- data. insert ( "generics " . to_owned ( ) , generics. to_json ( ) ) ;
418
+ data. insert ( "g " . to_owned ( ) , generics. to_json ( ) ) ;
419
419
}
420
420
Json :: Object ( data)
421
421
} ,
@@ -438,8 +438,12 @@ impl ToJson for IndexItemFunctionType {
438
438
Json :: Null
439
439
} else {
440
440
let mut data = BTreeMap :: new ( ) ;
441
- data. insert ( "inputs" . to_owned ( ) , self . inputs . to_json ( ) ) ;
442
- data. insert ( "output" . to_owned ( ) , self . output . to_json ( ) ) ;
441
+ if !self . inputs . is_empty ( ) {
442
+ data. insert ( "i" . to_owned ( ) , self . inputs . to_json ( ) ) ;
443
+ }
444
+ if let Some ( ref output) = self . output {
445
+ data. insert ( "o" . to_owned ( ) , output. to_json ( ) ) ;
446
+ }
443
447
Json :: Object ( data)
444
448
}
445
449
}
@@ -789,7 +793,8 @@ fn write_shared(cx: &Context,
789
793
format ! (
790
794
r#"var themes = document.getElementById("theme-choices");
791
795
var themePicker = document.getElementById("theme-picker");
792
- themePicker.onclick = function() {{
796
+
797
+ function switchThemeButtonState() {{
793
798
if (themes.style.display === "block") {{
794
799
themes.style.display = "none";
795
800
themePicker.style.borderBottomRightRadius = "3px";
@@ -800,12 +805,29 @@ themePicker.onclick = function() {{
800
805
themePicker.style.borderBottomLeftRadius = "0";
801
806
}}
802
807
}};
808
+
809
+ function handleThemeButtonsBlur(e) {{
810
+ var active = document.activeElement;
811
+ var related = e.relatedTarget;
812
+
813
+ if (active.id !== "themePicker" &&
814
+ (!active.parentNode || active.parentNode.id !== "theme-choices") &&
815
+ (!related ||
816
+ (related.id !== "themePicker" &&
817
+ (!related.parentNode || related.parentNode.id !== "theme-choices")))) {{
818
+ switchThemeButtonState();
819
+ }}
820
+ }}
821
+
822
+ themePicker.onclick = switchThemeButtonState;
823
+ themePicker.onblur = handleThemeButtonsBlur;
803
824
[{}].forEach(function(item) {{
804
825
var but = document.createElement('button');
805
826
but.innerHTML = item;
806
827
but.onclick = function(el) {{
807
828
switchTheme(currentTheme, mainTheme, item);
808
829
}};
830
+ but.onblur = handleThemeButtonsBlur;
809
831
themes.appendChild(but);
810
832
}});"# ,
811
833
themes. iter( )
@@ -879,8 +901,8 @@ themePicker.onclick = function() {{
879
901
}
880
902
881
903
fn show_item ( item : & IndexItem , krate : & str ) -> String {
882
- format ! ( "{{'crate':'{}','ty':{},'name':'{}','path ':'{}'{}}}" ,
883
- krate, item. ty as usize , item. name, item. path,
904
+ format ! ( "{{'crate':'{}','ty':{},'name':'{}','desc':'{}','p ':'{}'{}}}" ,
905
+ krate, item. ty as usize , item. name, item. desc . replace ( "'" , " \\ '" ) , item . path,
884
906
if let Some ( p) = item. parent_idx {
885
907
format!( ",'parent':{}" , p)
886
908
} else {
@@ -1442,7 +1464,7 @@ impl<'a> Cache {
1442
1464
ty : item. type_ ( ) ,
1443
1465
name : item_name. to_string ( ) ,
1444
1466
path : path. clone ( ) ,
1445
- desc : String :: new ( ) ,
1467
+ desc : plain_summary_line ( item . doc_value ( ) ) ,
1446
1468
parent : None ,
1447
1469
parent_idx : None ,
1448
1470
search_type : get_index_search_type ( & item) ,
0 commit comments