upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/src/sync/rejected_index.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/sync/rejected_index.rs')
-rw-r--r--src/sync/rejected_index.rs20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/sync/rejected_index.rs b/src/sync/rejected_index.rs
index f89783a..80d6b5b 100644
--- a/src/sync/rejected_index.rs
+++ b/src/sync/rejected_index.rs
@@ -85,7 +85,7 @@
85//! ``` 85//! ```
86 86
87use nostr_sdk::{Event, EventId, PublicKey}; 87use nostr_sdk::{Event, EventId, PublicKey};
88use std::collections::HashMap; 88use std::collections::{HashMap, HashSet};
89use std::sync::{Arc, RwLock}; 89use std::sync::{Arc, RwLock};
90use std::time::{Duration, Instant}; 90use std::time::{Duration, Instant};
91 91
@@ -396,6 +396,24 @@ impl RejectedEventsIndex {
396 pub fn cold_index_len(&self) -> usize { 396 pub fn cold_index_len(&self) -> usize {
397 self.cold_index.len() 397 self.cold_index.len()
398 } 398 }
399
400 /// Get all rejected event IDs (from both hot cache and cold index)
401 ///
402 /// Used for excluding rejected events from negentropy sync.
403 /// Note: This creates a snapshot - events may be added/removed concurrently.
404 pub fn get_all_event_ids(&self) -> HashSet<EventId> {
405 let mut ids = HashSet::new();
406
407 // Add from hot cache
408 let hot_entries = self.hot_cache.entries.read().unwrap();
409 ids.extend(hot_entries.keys().cloned());
410
411 // Add from cold index
412 let cold_entries = self.cold_index.entries.read().unwrap();
413 ids.extend(cold_entries.keys().cloned());
414
415 ids
416 }
399} 417}
400 418
401#[cfg(test)] 419#[cfg(test)]