Skip to content

Commit 82195ef

Browse files
committed
Merge branch 'main' into allow-downloader-config
# Conflicts: # src/net_protocol.rs
2 parents 3a5ea84 + 6e9f06b commit 82195ef

File tree

2 files changed

+25
-9
lines changed

2 files changed

+25
-9
lines changed

src/net_protocol.rs

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use serde::{Deserialize, Serialize};
1818
use tracing::debug;
1919

2020
use crate::{
21-
downloader::{self, Downloader},
21+
downloader::{self, ConcurrencyLimits, Downloader, RetryConfig},
2222
provider::EventSender,
2323
store::GcConfig,
2424
util::{
@@ -147,7 +147,7 @@ impl BlobBatches {
147147
pub struct Builder<S> {
148148
store: S,
149149
events: Option<EventSender>,
150-
downloader: Option<crate::downloader::Config>,
150+
downloader_config: Option<crate::downloader::Config>,
151151
rt: Option<LocalPoolHandle>,
152152
}
153153

@@ -158,15 +158,29 @@ impl<S: crate::store::Store> Builder<S> {
158158
self
159159
}
160160

161-
/// Set a custom `LocalPoolHandle` to use.
161+
/// Set a custom [`LocalPoolHandle`] to use.
162162
pub fn local_pool(mut self, rt: LocalPoolHandle) -> Self {
163163
self.rt = Some(rt);
164164
self
165165
}
166166

167-
/// Set a custom downloader configuration.
168-
pub fn downloader(mut self, config: downloader::Config) -> Self {
169-
self.downloader = Some(config);
167+
/// Set custom downloader config
168+
pub fn downloader_config(mut self, downloader_config: downloader::Config) -> Self {
169+
self.downloader_config = Some(downloader_config);
170+
self
171+
}
172+
173+
/// Set custom [`ConcurrencyLimits`] to use.
174+
pub fn concurrency_limits(mut self, concurrency_limits: ConcurrencyLimits) -> Self {
175+
let downloader_config = self.downloader_config.get_or_insert_default();
176+
downloader_config.concurrency = concurrency_limits;
177+
self
178+
}
179+
180+
/// Set a custom [`RetryConfig`] to use.
181+
pub fn retry_config(mut self, retry_config: RetryConfig) -> Self {
182+
let downloader_config = self.downloader_config.get_or_insert_default();
183+
downloader_config.retry = retry_config;
170184
self
171185
}
172186

@@ -177,7 +191,7 @@ impl<S: crate::store::Store> Builder<S> {
177191
.rt
178192
.map(Rt::Handle)
179193
.unwrap_or_else(|| Rt::Owned(LocalPool::default()));
180-
let downloader_config = self.downloader.unwrap_or_default();
194+
let downloader_config = self.downloader_config.unwrap_or_default();
181195
let downloader = Downloader::with_config(
182196
self.store.clone(),
183197
endpoint.clone(),
@@ -200,7 +214,7 @@ impl<S> Blobs<S> {
200214
Builder {
201215
store,
202216
events: None,
203-
downloader: None,
217+
downloader_config: None,
204218
rt: None,
205219
}
206220
}

tests/rpc.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,9 @@ async fn downloader_config() -> TestResult<()> {
103103
initial_retry_delay: std::time::Duration::from_secs(1),
104104
},
105105
};
106-
let blobs = Blobs::builder(store).downloader(expected).build(&endpoint);
106+
let blobs = Blobs::builder(store)
107+
.downloader_config(expected)
108+
.build(&endpoint);
107109
let actual = blobs.downloader().config();
108110
assert_eq!(&expected, actual);
109111
Ok(())

0 commit comments

Comments
 (0)