@@ -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:: { 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;
@@ -1185,13 +1185,12 @@ themePicker.onblur = handleThemeButtonsBlur;
1185
1185
SlashChecker ( s) , s)
1186
1186
} )
1187
1187
. collect:: <String >( ) ) ;
1188
- let mut v = Buffer :: html ( ) ;
1189
- layout:: render ( & mut v, & cx. shared . layout ,
1188
+ let v = layout:: render ( & cx. shared . layout ,
1190
1189
& page, & ( "" ) , & content,
1191
1190
cx. shared . css_file_extension . is_some ( ) ,
1192
1191
& cx. shared . themes ,
1193
1192
cx. shared . generate_search_filter ) ;
1194
- cx. shared . fs . write ( & dst, v. into_inner ( ) . as_bytes ( ) ) ?;
1193
+ cx. shared . fs . write ( & dst, v. as_bytes ( ) ) ?;
1195
1194
}
1196
1195
}
1197
1196
@@ -1939,13 +1938,12 @@ impl Context {
1939
1938
} else {
1940
1939
String :: new ( )
1941
1940
} ;
1942
- let mut v = Buffer :: html ( ) ;
1943
- layout:: render ( & mut v, & self . shared . layout ,
1941
+ let v = layout:: render ( & self . shared . layout ,
1944
1942
& page, & sidebar, & all,
1945
1943
self . shared . css_file_extension . is_some ( ) ,
1946
1944
& self . shared . themes ,
1947
1945
self . shared . generate_search_filter ) ;
1948
- self . shared . fs . write ( & final_file, v. into_inner ( ) . as_bytes ( ) ) ?;
1946
+ self . shared . fs . write ( & final_file, v. as_bytes ( ) ) ?;
1949
1947
1950
1948
// Generating settings page.
1951
1949
let settings = Settings :: new ( self . shared . static_root_path . as_deref ( ) . unwrap_or ( "./" ) ,
@@ -1958,24 +1956,21 @@ impl Context {
1958
1956
let sidebar = "<p class='location'>Settings</p><div class='sidebar-elems'></div>" ;
1959
1957
themes. push ( PathBuf :: from ( "settings.css" ) ) ;
1960
1958
let layout = self . shared . layout . clone ( ) ;
1961
- let mut v = Buffer :: html ( ) ;
1962
- layout:: render (
1963
- & mut v,
1959
+ let v = layout:: render (
1964
1960
& layout,
1965
1961
& page, & sidebar, & settings,
1966
1962
self . shared . css_file_extension . is_some ( ) ,
1967
1963
& themes,
1968
1964
self . shared . generate_search_filter ,
1969
1965
) ;
1970
- self . shared . fs . write ( & settings_file, v. into_inner ( ) . as_bytes ( ) ) ?;
1966
+ self . shared . fs . write ( & settings_file, v. as_bytes ( ) ) ?;
1971
1967
1972
1968
Ok ( ( ) )
1973
1969
}
1974
1970
1975
1971
fn render_item ( & self ,
1976
- writer : & mut Buffer ,
1977
1972
it : & clean:: Item ,
1978
- pushname : bool ) {
1973
+ pushname : bool ) -> String {
1979
1974
// A little unfortunate that this is done like this, but it sure
1980
1975
// does make formatting *a lot* nicer.
1981
1976
CURRENT_DEPTH . with ( |slot| {
@@ -2022,12 +2017,12 @@ impl Context {
2022
2017
}
2023
2018
2024
2019
if !self . render_redirect_pages {
2025
- layout:: render ( writer , & self . shared . layout , & page,
2020
+ layout:: render ( & self . shared . layout , & page,
2026
2021
& Sidebar { cx : self , item : it } ,
2027
2022
& Item { cx : self , item : it } ,
2028
2023
self . shared . css_file_extension . is_some ( ) ,
2029
2024
& self . shared . themes ,
2030
- self . shared . generate_search_filter ) ;
2025
+ self . shared . generate_search_filter )
2031
2026
} else {
2032
2027
let mut url = self . root_path ( ) ;
2033
2028
if let Some ( & ( ref names, ty) ) = cache ( ) . paths . get ( & it. def_id ) {
@@ -2036,7 +2031,9 @@ impl Context {
2036
2031
url. push_str ( "/" ) ;
2037
2032
}
2038
2033
url. push_str ( & item_path ( ty, names. last ( ) . unwrap ( ) ) ) ;
2039
- layout:: redirect ( writer, & url) ;
2034
+ layout:: redirect ( & url)
2035
+ } else {
2036
+ String :: new ( )
2040
2037
}
2041
2038
}
2042
2039
}
@@ -2074,13 +2071,12 @@ impl Context {
2074
2071
2075
2072
info ! ( "Recursing into {}" , self . dst. display( ) ) ;
2076
2073
2077
- let mut buf = Buffer :: html ( ) ;
2078
- self . render_item ( & mut buf, & item, false ) ;
2074
+ let buf = self . render_item ( & item, false ) ;
2079
2075
// buf will be empty if the module is stripped and there is no redirect for it
2080
2076
if !buf. is_empty ( ) {
2081
2077
self . shared . ensure_dir ( & self . dst ) ?;
2082
2078
let joint_dst = self . dst . join ( "index.html" ) ;
2083
- scx. fs . write ( & joint_dst, buf. into_inner ( ) . as_bytes ( ) ) ?;
2079
+ scx. fs . write ( & joint_dst, buf. as_bytes ( ) ) ?;
2084
2080
}
2085
2081
2086
2082
let m = match item. inner {
@@ -2109,16 +2105,15 @@ impl Context {
2109
2105
self . dst = prev;
2110
2106
self . current . pop ( ) . unwrap ( ) ;
2111
2107
} else if item. name . is_some ( ) {
2112
- let mut buf = Buffer :: html ( ) ;
2113
- self . render_item ( & mut buf, & item, true ) ;
2108
+ let buf = self . render_item ( & item, true ) ;
2114
2109
// buf will be empty if the item is stripped and there is no redirect for it
2115
2110
if !buf. is_empty ( ) {
2116
2111
let name = item. name . as_ref ( ) . unwrap ( ) ;
2117
2112
let item_type = item. type_ ( ) ;
2118
2113
let file_name = & item_path ( item_type, name) ;
2119
2114
self . shared . ensure_dir ( & self . dst ) ?;
2120
2115
let joint_dst = self . dst . join ( file_name) ;
2121
- self . shared . fs . write ( & joint_dst, buf. into_inner ( ) . as_bytes ( ) ) ?;
2116
+ self . shared . fs . write ( & joint_dst, buf. as_bytes ( ) ) ?;
2122
2117
2123
2118
if !self . render_redirect_pages {
2124
2119
all. append ( full_path ( self , & item) , & item_type) ;
@@ -2128,18 +2123,16 @@ impl Context {
2128
2123
// URL for the page.
2129
2124
let redir_name = format ! ( "{}.{}.html" , name, item_type. name_space( ) ) ;
2130
2125
let redir_dst = self . dst . join ( redir_name) ;
2131
- let mut v = Buffer :: html ( ) ;
2132
- layout:: redirect ( & mut v, file_name) ;
2133
- self . shared . fs . write ( & redir_dst, v. into_inner ( ) . as_bytes ( ) ) ?;
2126
+ let v = layout:: redirect ( file_name) ;
2127
+ self . shared . fs . write ( & redir_dst, v. as_bytes ( ) ) ?;
2134
2128
}
2135
2129
// If the item is a macro, redirect from the old macro URL (with !)
2136
2130
// to the new one (without).
2137
2131
if item_type == ItemType :: Macro {
2138
2132
let redir_name = format ! ( "{}.{}!.html" , item_type, name) ;
2139
2133
let redir_dst = self . dst . join ( redir_name) ;
2140
- let mut v = Buffer :: html ( ) ;
2141
- layout:: redirect ( & mut v, file_name) ;
2142
- self . shared . fs . write ( & redir_dst, v. into_inner ( ) . as_bytes ( ) ) ?;
2134
+ let v = layout:: redirect ( file_name) ;
2135
+ self . shared . fs . write ( & redir_dst, v. as_bytes ( ) ) ?;
2143
2136
}
2144
2137
}
2145
2138
}
0 commit comments