···271271 return Err(http::StatusCode::BAD_REQUEST);
272272 }
273273274274- // ugh could have just passed the zero-len hashmap through, same check in the impl
275275- // but now i feel lazy
276276- let empty = query.did.is_empty();
277277- let dids = if !empty {
278278- None
279279- } else {
280280- let mut out = HashSet::new();
281281- for d in &query.did {
282282- out.insert(Did(d.clone()));
283283- }
284284- Some(out)
285285- };
274274+ let filter_dids = HashSet::from_iter(query.did.iter().map(|d| Did(d.to_string())));
286275287276 let paged = store
288277 .get_links(
···291280 &query.path,
292281 limit,
293282 until,
294294- dids.as_ref(),
283283+ &filter_dids,
295284 )
296285 .map_err(|_| http::StatusCode::INTERNAL_SERVER_ERROR)?;
297286
+3-3
constellation/src/storage/mem_store.rs
···166166 path: &str,
167167 limit: u64,
168168 until: Option<u64>,
169169- filter_dids: Option<&HashSet<Did>>,
169169+ filter_dids: &HashSet<Did>,
170170 ) -> Result<PagedAppendingCollection<RecordId>> {
171171 let data = self.0.lock().unwrap();
172172 let Some(paths) = data.targets.get(&Target::new(target)) else {
···184184 });
185185 };
186186187187- let did_rkeys: Vec<_> = if let Some(dids) = filter_dids {
187187+ let did_rkeys: Vec<_> = if !filter_dids.is_empty() {
188188 did_rkeys
189189 .iter()
190190 .filter(|m| {
191191 Option::<(Did, RKey)>::clone(m)
192192- .map(|(did, _)| dids.contains(&did))
192192+ .map(|(did, _)| filter_dids.contains(&did))
193193 .unwrap_or(false)
194194 })
195195 .cloned()