Skip to content

Commit

Permalink
fix: return empty set of keys instead of panicking when the KeyedSubf…
Browse files Browse the repository at this point in the history
…ield is disposed (#3550)
  • Loading branch information
mahdi739 authored Feb 7, 2025
1 parent f881c18 commit cd64bb9
Showing 1 changed file with 10 additions and 11 deletions.
21 changes: 10 additions & 11 deletions reactive_stores/src/keyed.rs
Original file line number Diff line number Diff line change
Expand Up @@ -148,11 +148,8 @@ where
{
fn latest_keys(&self) -> Vec<K> {
self.reader()
.expect("trying to update keys")
.deref()
.into_iter()
.map(|n| (self.key_fn)(n))
.collect()
.map(|r| r.deref().into_iter().map(|n| (self.key_fn)(n)).collect())
.unwrap_or_default()
}
}

Expand Down Expand Up @@ -654,13 +651,15 @@ where
self.track_field();

// get the current length of the field by accessing slice
let reader = self
.reader()
.expect("creating iterator from unavailable store field");
let reader = self.reader();

let keys = reader
.into_iter()
.map(|item| (self.key_fn)(item))
.collect::<VecDeque<_>>();
.map(|r| {
r.into_iter()
.map(|item| (self.key_fn)(item))
.collect::<VecDeque<_>>()
})
.unwrap_or_default();

// return the iterator
StoreFieldKeyedIter { inner: self, keys }
Expand Down

0 comments on commit cd64bb9

Please sign in to comment.