Skip to content

Commit a17b61e

Browse files
committed
Add impl Extend for RelayMap
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
1 parent 71d5136 commit a17b61e

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

iroh-relay/src/relay_map.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,26 @@ impl RelayMap {
120120
}
121121
}
122122

123+
impl Extend<(RelayUrl, Arc<RelayConfig>)> for RelayMap {
124+
/// Extends this `RelayMap` with another one.
125+
///
126+
/// You can use this like this:
127+
///
128+
/// ```rust
129+
/// # let relay_map_a: RelayMap = { unimplemented!() };
130+
/// # let relay_map_b: RelayMap = { unimplemented!() };
131+
///
132+
/// relay_map_a.extend(relay_map_b.relays::<Vec<_>>());
133+
/// ```
134+
fn extend<I>(&mut self, iter: I)
135+
where
136+
I: IntoIterator<Item = (RelayUrl, Arc<RelayConfig>)>,
137+
{
138+
let mut a = self.relays.write().expect("poisoned");
139+
a.extend(iter);
140+
}
141+
}
142+
123143
impl FromIterator<RelayConfig> for RelayMap {
124144
fn from_iter<T: IntoIterator<Item = RelayConfig>>(iter: T) -> Self {
125145
Self::from_iter(iter.into_iter().map(Arc::new))

0 commit comments

Comments
 (0)