Skip to content

Commit cc37695

Browse files
committed
Use set for associated buckets
1 parent bb21028 commit cc37695

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

crates/core/src/sync/sync_status.rs

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
use alloc::{boxed::Box, collections::btree_map::BTreeMap, rc::Rc, string::String, vec::Vec};
1+
use alloc::{
2+
boxed::Box,
3+
collections::{btree_map::BTreeMap, btree_set::BTreeSet},
4+
rc::Rc,
5+
string::String,
6+
vec::Vec,
7+
};
28
use core::{
39
cell::RefCell,
410
cmp::min,
@@ -276,7 +282,7 @@ pub struct ActiveStreamSubscription {
276282
pub id: i64,
277283
pub name: String,
278284
pub parameters: Option<Box<JsonString>>,
279-
pub associated_buckets: Vec<String>,
285+
pub associated_buckets: BTreeSet<String>,
280286
pub priority: Option<BucketPriority>,
281287
pub active: bool,
282288
pub is_default: bool,
@@ -293,7 +299,7 @@ impl ActiveStreamSubscription {
293299
parameters: local.local_params.clone(),
294300
is_default: local.is_default,
295301
priority: None,
296-
associated_buckets: Vec::new(),
302+
associated_buckets: BTreeSet::new(),
297303
active: local.active,
298304

299305
has_explicit_subscription: local.has_subscribed_manually(),
@@ -303,17 +309,8 @@ impl ActiveStreamSubscription {
303309
}
304310

305311
pub fn mark_associated_with_bucket(&mut self, bucket: &OwnedBucketChecksum) {
306-
match self.associated_buckets.binary_search(&bucket.bucket) {
307-
Ok(_) => {
308-
// The bucket is already part of the list
309-
return;
310-
}
311-
Err(position) => {
312-
// Insert here to keep vec sorted
313-
self.associated_buckets
314-
.insert(position, bucket.bucket.clone());
315-
}
316-
};
312+
self.associated_buckets
313+
.get_or_insert_with(&bucket.bucket, |key| key.clone());
317314

318315
self.priority = Some(match self.priority {
319316
None => bucket.priority,

0 commit comments

Comments
 (0)