(&self)
| 150 | } |
| 151 | |
| 152 | pub async fn fetch(&self) -> Result<(u64, Receiver)> { |
| 153 | let fut: Vec<_> = self |
| 154 | .brokers |
| 155 | .values() |
| 156 | .map(|x| x.fetch::<DynConns>()) |
| 157 | .collect(); |
| 158 | if let Ok(mut conns) = select_ok(fut).await { |
| 159 | let conn = conns.outputs.remove(&self.target).unwrap_or_else(|| { |
| 160 | panic!( |
| 161 | "port {} not found in graph {:?}", |
| 162 | self.target, |
| 163 | self.brokers.keys() |
| 164 | ) |
| 165 | }); |
| 166 | return Ok((conns.name, conn)); |
| 167 | } |
| 168 | Err(anyhow!("broker is closed")) |
| 169 | } |
| 170 | |
| 171 | pub async fn fetch_with_cache(&mut self) -> &mut HashMap<u64, Receiver> { |
| 172 | if self.cache.is_empty() { |
no test coverage detected