@@ -24,7 +24,7 @@ use crate::{
24
24
} ;
25
25
26
26
async fn body_to_file ( body : & mut Incoming , file : tokio:: fs:: File ) -> Result < ( ) , ProxyCacheError > {
27
- let mut writer = BufWriter :: new ( file) ;
27
+ let mut writer = BufWriter :: with_capacity ( global_config ( ) . buffer_size , file) ;
28
28
29
29
while let Some ( next) = body. frame ( ) . await {
30
30
let frame = next?;
@@ -69,7 +69,8 @@ enum PackageFormat {
69
69
}
70
70
71
71
impl PackageFormat {
72
- fn extension ( & self ) -> & ' static str {
72
+ #[ must_use]
73
+ const fn extension ( & self ) -> & ' static str {
73
74
match self {
74
75
Self :: Raw => "" ,
75
76
Self :: Gz => ".gz" ,
@@ -89,7 +90,9 @@ impl PackageFormat {
89
90
err
90
91
} ) ?;
91
92
92
- let file_reader = tokio:: io:: BufReader :: new ( file) ;
93
+ let buffer_size = global_config ( ) . buffer_size ;
94
+
95
+ let file_reader = tokio:: io:: BufReader :: with_capacity ( buffer_size, file) ;
93
96
94
97
macro_rules! process_lines {
95
98
( $e: expr) => {
@@ -122,14 +125,14 @@ impl PackageFormat {
122
125
Self :: Gz => {
123
126
let decoder = async_compression:: tokio:: bufread:: GzipDecoder :: new ( file_reader) ;
124
127
125
- let reader = tokio:: io:: BufReader :: new ( decoder) ;
128
+ let reader = tokio:: io:: BufReader :: with_capacity ( buffer_size , decoder) ;
126
129
127
130
process_lines ! ( reader. lines( ) ) ;
128
131
}
129
132
Self :: Xz => {
130
133
let decoder = async_compression:: tokio:: bufread:: XzDecoder :: new ( file_reader) ;
131
134
132
- let reader = tokio:: io:: BufReader :: new ( decoder) ;
135
+ let reader = tokio:: io:: BufReader :: with_capacity ( buffer_size , decoder) ;
133
136
134
137
process_lines ! ( reader. lines( ) ) ;
135
138
}
0 commit comments