@@ -65,7 +65,7 @@ use crate::docfs::{DocFS, ErrorStorage, PathError};
65
65
use crate :: doctree;
66
66
use crate :: fold:: DocFolder ;
67
67
use crate :: html:: escape:: Escape ;
68
- use crate :: html:: format:: { Buffer , AsyncSpace , ConstnessSpace } ;
68
+ use crate :: html:: format:: { Print , Buffer , AsyncSpace , ConstnessSpace } ;
69
69
use crate :: html:: format:: { GenericBounds , WhereClause , href, AbiSpace , DefaultSpace } ;
70
70
use crate :: html:: format:: { VisSpace , Function , UnsafetySpace , MutableSpace } ;
71
71
use crate :: html:: format:: fmt_impl_for_trait_page;
@@ -4266,15 +4266,15 @@ fn item_foreign_type(w: &mut fmt::Formatter<'_>, cx: &Context, it: &clean::Item)
4266
4266
render_assoc_items ( w, cx, it, it. def_id , AssocItemRender :: All )
4267
4267
}
4268
4268
4269
- impl < ' a > fmt :: Display for Sidebar < ' a > {
4270
- fn fmt ( & self , fmt : & mut fmt :: Formatter < ' _ > ) -> fmt :: Result {
4269
+ impl Print for Sidebar < ' _ > {
4270
+ fn print ( & self , buffer : & mut Buffer ) {
4271
4271
let cx = self . cx ;
4272
4272
let it = self . item ;
4273
4273
let parentlen = cx. current . len ( ) - if it. is_mod ( ) { 1 } else { 0 } ;
4274
4274
4275
4275
if it. is_struct ( ) || it. is_trait ( ) || it. is_primitive ( ) || it. is_union ( )
4276
4276
|| it. is_enum ( ) || it. is_mod ( ) || it. is_typedef ( ) {
4277
- write ! ( fmt , "<p class='location'>{}{}</p>" ,
4277
+ write ! ( buffer , "<p class='location'>{}{}</p>" ,
4278
4278
match it. inner {
4279
4279
clean:: StructItem ( ..) => "Struct " ,
4280
4280
clean:: TraitItem ( ..) => "Trait " ,
@@ -4290,33 +4290,33 @@ impl<'a> fmt::Display for Sidebar<'a> {
4290
4290
} ,
4291
4291
_ => "" ,
4292
4292
} ,
4293
- it. name. as_ref( ) . unwrap( ) ) ? ;
4293
+ it. name. as_ref( ) . unwrap( ) ) ;
4294
4294
}
4295
4295
4296
4296
if it. is_crate ( ) {
4297
4297
if let Some ( ref version) = cache ( ) . crate_version {
4298
- write ! ( fmt ,
4298
+ write ! ( buffer ,
4299
4299
"<div class='block version'>\
4300
4300
<p>Version {}</p>\
4301
4301
</div>",
4302
- version) ? ;
4302
+ version) ;
4303
4303
}
4304
4304
}
4305
4305
4306
- write ! ( fmt , "<div class=\" sidebar-elems\" >" ) ? ;
4306
+ write ! ( buffer , "<div class=\" sidebar-elems\" >" ) ;
4307
4307
if it. is_crate ( ) {
4308
- write ! ( fmt , "<a id='all-types' href='all.html'><p>See all {}'s items</p></a>" ,
4309
- it. name. as_ref( ) . expect( "crates always have a name" ) ) ? ;
4308
+ write ! ( buffer , "<a id='all-types' href='all.html'><p>See all {}'s items</p></a>" ,
4309
+ it. name. as_ref( ) . expect( "crates always have a name" ) ) ;
4310
4310
}
4311
4311
match it. inner {
4312
- clean:: StructItem ( ref s) => sidebar_struct ( fmt , it, s) ? ,
4313
- clean:: TraitItem ( ref t) => sidebar_trait ( fmt , it, t) ? ,
4314
- clean:: PrimitiveItem ( ref p) => sidebar_primitive ( fmt , it, p) ? ,
4315
- clean:: UnionItem ( ref u) => sidebar_union ( fmt , it, u) ? ,
4316
- clean:: EnumItem ( ref e) => sidebar_enum ( fmt , it, e) ? ,
4317
- clean:: TypedefItem ( ref t, _) => sidebar_typedef ( fmt , it, t) ? ,
4318
- clean:: ModuleItem ( ref m) => sidebar_module ( fmt , it, & m. items ) ? ,
4319
- clean:: ForeignTypeItem => sidebar_foreign_type ( fmt , it) ? ,
4312
+ clean:: StructItem ( ref s) => sidebar_struct ( buffer , it, s) ,
4313
+ clean:: TraitItem ( ref t) => sidebar_trait ( buffer , it, t) ,
4314
+ clean:: PrimitiveItem ( ref p) => sidebar_primitive ( buffer , it, p) ,
4315
+ clean:: UnionItem ( ref u) => sidebar_union ( buffer , it, u) ,
4316
+ clean:: EnumItem ( ref e) => sidebar_enum ( buffer , it, e) ,
4317
+ clean:: TypedefItem ( ref t, _) => sidebar_typedef ( buffer , it, t) ,
4318
+ clean:: ModuleItem ( ref m) => sidebar_module ( buffer , it, & m. items ) ,
4319
+ clean:: ForeignTypeItem => sidebar_foreign_type ( buffer , it) ,
4320
4320
_ => ( ) ,
4321
4321
}
4322
4322
@@ -4328,39 +4328,37 @@ impl<'a> fmt::Display for Sidebar<'a> {
4328
4328
// as much HTML as possible in order to allow non-JS-enabled browsers
4329
4329
// to navigate the documentation (though slightly inefficiently).
4330
4330
4331
- write ! ( fmt , "<p class='location'>" ) ? ;
4331
+ write ! ( buffer , "<p class='location'>" ) ;
4332
4332
for ( i, name) in cx. current . iter ( ) . take ( parentlen) . enumerate ( ) {
4333
4333
if i > 0 {
4334
- write ! ( fmt , "::<wbr>" ) ? ;
4334
+ write ! ( buffer , "::<wbr>" ) ;
4335
4335
}
4336
- write ! ( fmt , "<a href='{}index.html'>{}</a>" ,
4336
+ write ! ( buffer , "<a href='{}index.html'>{}</a>" ,
4337
4337
& cx. root_path( ) [ ..( cx. current. len( ) - i - 1 ) * 3 ] ,
4338
- * name) ? ;
4338
+ * name) ;
4339
4339
}
4340
- write ! ( fmt , "</p>" ) ? ;
4340
+ write ! ( buffer , "</p>" ) ;
4341
4341
4342
4342
// Sidebar refers to the enclosing module, not this module.
4343
4343
let relpath = if it. is_mod ( ) { "../" } else { "" } ;
4344
- write ! ( fmt ,
4344
+ write ! ( buffer ,
4345
4345
"<script>window.sidebarCurrent = {{\
4346
4346
name: '{name}', \
4347
4347
ty: '{ty}', \
4348
4348
relpath: '{path}'\
4349
4349
}};</script>",
4350
4350
name = it. name. as_ref( ) . map( |x| & x[ ..] ) . unwrap_or( "" ) ,
4351
4351
ty = it. type_( ) . css_class( ) ,
4352
- path = relpath) ? ;
4352
+ path = relpath) ;
4353
4353
if parentlen == 0 {
4354
4354
// There is no sidebar-items.js beyond the crate root path
4355
4355
// FIXME maybe dynamic crate loading can be merged here
4356
4356
} else {
4357
- write ! ( fmt , "<script defer src=\" {path}sidebar-items.js\" ></script>" ,
4358
- path = relpath) ? ;
4357
+ write ! ( buffer , "<script defer src=\" {path}sidebar-items.js\" ></script>" ,
4358
+ path = relpath) ;
4359
4359
}
4360
4360
// Closes sidebar-elems div.
4361
- write ! ( fmt, "</div>" ) ?;
4362
-
4363
- Ok ( ( ) )
4361
+ write ! ( buffer, "</div>" ) ;
4364
4362
}
4365
4363
}
4366
4364
@@ -4534,8 +4532,7 @@ fn sidebar_assoc_items(it: &clean::Item) -> String {
4534
4532
out
4535
4533
}
4536
4534
4537
- fn sidebar_struct ( fmt : & mut fmt:: Formatter < ' _ > , it : & clean:: Item ,
4538
- s : & clean:: Struct ) -> fmt:: Result {
4535
+ fn sidebar_struct ( buf : & mut Buffer , it : & clean:: Item , s : & clean:: Struct ) {
4539
4536
let mut sidebar = String :: new ( ) ;
4540
4537
let fields = get_struct_fields_name ( & s. fields ) ;
4541
4538
@@ -4549,9 +4546,8 @@ fn sidebar_struct(fmt: &mut fmt::Formatter<'_>, it: &clean::Item,
4549
4546
sidebar. push_str ( & sidebar_assoc_items ( it) ) ;
4550
4547
4551
4548
if !sidebar. is_empty ( ) {
4552
- write ! ( fmt , "<div class=\" block items\" >{}</div>" , sidebar) ? ;
4549
+ write ! ( buf , "<div class=\" block items\" >{}</div>" , sidebar) ;
4553
4550
}
4554
- Ok ( ( ) )
4555
4551
}
4556
4552
4557
4553
fn get_id_for_impl_on_foreign_type ( for_ : & clean:: Type , trait_ : & clean:: Type ) -> String {
@@ -4575,8 +4571,7 @@ fn is_negative_impl(i: &clean::Impl) -> bool {
4575
4571
i. polarity == Some ( clean:: ImplPolarity :: Negative )
4576
4572
}
4577
4573
4578
- fn sidebar_trait ( fmt : & mut fmt:: Formatter < ' _ > , it : & clean:: Item ,
4579
- t : & clean:: Trait ) -> fmt:: Result {
4574
+ fn sidebar_trait ( buf : & mut Buffer , it : & clean:: Item , t : & clean:: Trait ) {
4580
4575
let mut sidebar = String :: new ( ) ;
4581
4576
4582
4577
let types = t. items
@@ -4684,27 +4679,23 @@ fn sidebar_trait(fmt: &mut fmt::Formatter<'_>, it: &clean::Item,
4684
4679
4685
4680
sidebar. push_str ( & sidebar_assoc_items ( it) ) ;
4686
4681
4687
- write ! ( fmt , "<div class=\" block items\" >{}</div>" , sidebar)
4682
+ write ! ( buf , "<div class=\" block items\" >{}</div>" , sidebar)
4688
4683
}
4689
4684
4690
- fn sidebar_primitive ( fmt : & mut fmt:: Formatter < ' _ > , it : & clean:: Item ,
4691
- _p : & clean:: PrimitiveType ) -> fmt:: Result {
4685
+ fn sidebar_primitive ( buf : & mut Buffer , it : & clean:: Item , _p : & clean:: PrimitiveType ) {
4692
4686
let sidebar = sidebar_assoc_items ( it) ;
4693
4687
4694
4688
if !sidebar. is_empty ( ) {
4695
- write ! ( fmt , "<div class=\" block items\" >{}</div>" , sidebar) ? ;
4689
+ write ! ( buf , "<div class=\" block items\" >{}</div>" , sidebar) ;
4696
4690
}
4697
- Ok ( ( ) )
4698
4691
}
4699
4692
4700
- fn sidebar_typedef ( fmt : & mut fmt:: Formatter < ' _ > , it : & clean:: Item ,
4701
- _t : & clean:: Typedef ) -> fmt:: Result {
4693
+ fn sidebar_typedef ( buf : & mut Buffer , it : & clean:: Item , _t : & clean:: Typedef ) {
4702
4694
let sidebar = sidebar_assoc_items ( it) ;
4703
4695
4704
4696
if !sidebar. is_empty ( ) {
4705
- write ! ( fmt , "<div class=\" block items\" >{}</div>" , sidebar) ? ;
4697
+ write ! ( buf , "<div class=\" block items\" >{}</div>" , sidebar) ;
4706
4698
}
4707
- Ok ( ( ) )
4708
4699
}
4709
4700
4710
4701
fn get_struct_fields_name ( fields : & [ clean:: Item ] ) -> String {
@@ -4722,8 +4713,7 @@ fn get_struct_fields_name(fields: &[clean::Item]) -> String {
4722
4713
. collect ( )
4723
4714
}
4724
4715
4725
- fn sidebar_union ( fmt : & mut fmt:: Formatter < ' _ > , it : & clean:: Item ,
4726
- u : & clean:: Union ) -> fmt:: Result {
4716
+ fn sidebar_union ( buf : & mut Buffer , it : & clean:: Item , u : & clean:: Union ) {
4727
4717
let mut sidebar = String :: new ( ) ;
4728
4718
let fields = get_struct_fields_name ( & u. fields ) ;
4729
4719
@@ -4735,13 +4725,11 @@ fn sidebar_union(fmt: &mut fmt::Formatter<'_>, it: &clean::Item,
4735
4725
sidebar. push_str ( & sidebar_assoc_items ( it) ) ;
4736
4726
4737
4727
if !sidebar. is_empty ( ) {
4738
- write ! ( fmt , "<div class=\" block items\" >{}</div>" , sidebar) ? ;
4728
+ write ! ( buf , "<div class=\" block items\" >{}</div>" , sidebar) ;
4739
4729
}
4740
- Ok ( ( ) )
4741
4730
}
4742
4731
4743
- fn sidebar_enum ( fmt : & mut fmt:: Formatter < ' _ > , it : & clean:: Item ,
4744
- e : & clean:: Enum ) -> fmt:: Result {
4732
+ fn sidebar_enum ( buf : & mut Buffer , it : & clean:: Item , e : & clean:: Enum ) {
4745
4733
let mut sidebar = String :: new ( ) ;
4746
4734
4747
4735
let variants = e. variants . iter ( )
@@ -4759,9 +4747,8 @@ fn sidebar_enum(fmt: &mut fmt::Formatter<'_>, it: &clean::Item,
4759
4747
sidebar. push_str ( & sidebar_assoc_items ( it) ) ;
4760
4748
4761
4749
if !sidebar. is_empty ( ) {
4762
- write ! ( fmt , "<div class=\" block items\" >{}</div>" , sidebar) ? ;
4750
+ write ! ( buf , "<div class=\" block items\" >{}</div>" , sidebar) ;
4763
4751
}
4764
- Ok ( ( ) )
4765
4752
}
4766
4753
4767
4754
fn item_ty_to_strs ( ty : & ItemType ) -> ( & ' static str , & ' static str ) {
@@ -4795,8 +4782,7 @@ fn item_ty_to_strs(ty: &ItemType) -> (&'static str, &'static str) {
4795
4782
}
4796
4783
}
4797
4784
4798
- fn sidebar_module ( fmt : & mut fmt:: Formatter < ' _ > , _it : & clean:: Item ,
4799
- items : & [ clean:: Item ] ) -> fmt:: Result {
4785
+ fn sidebar_module ( buf : & mut Buffer , _it : & clean:: Item , items : & [ clean:: Item ] ) {
4800
4786
let mut sidebar = String :: new ( ) ;
4801
4787
4802
4788
if items. iter ( ) . any ( |it| it. type_ ( ) == ItemType :: ExternCrate ||
@@ -4823,17 +4809,15 @@ fn sidebar_module(fmt: &mut fmt::Formatter<'_>, _it: &clean::Item,
4823
4809
}
4824
4810
4825
4811
if !sidebar. is_empty ( ) {
4826
- write ! ( fmt , "<div class=\" block items\" ><ul>{}</ul></div>" , sidebar) ? ;
4812
+ write ! ( buf , "<div class=\" block items\" ><ul>{}</ul></div>" , sidebar) ;
4827
4813
}
4828
- Ok ( ( ) )
4829
4814
}
4830
4815
4831
- fn sidebar_foreign_type ( fmt : & mut fmt :: Formatter < ' _ > , it : & clean:: Item ) -> fmt :: Result {
4816
+ fn sidebar_foreign_type ( buf : & mut Buffer , it : & clean:: Item ) {
4832
4817
let sidebar = sidebar_assoc_items ( it) ;
4833
4818
if !sidebar. is_empty ( ) {
4834
- write ! ( fmt , "<div class=\" block items\" >{}</div>" , sidebar) ? ;
4819
+ write ! ( buf , "<div class=\" block items\" >{}</div>" , sidebar) ;
4835
4820
}
4836
- Ok ( ( ) )
4837
4821
}
4838
4822
4839
4823
fn item_macro ( w : & mut fmt:: Formatter < ' _ > , cx : & Context , it : & clean:: Item ,
0 commit comments