view.rs 591 B

123456789101112131415161718192021222324252627
  1. use fxhash::FxHashMap;
  2. use darkfi::Result;
  3. use crate::{
  4. events_queue::EventsQueuePtr,
  5. model::{Event, EventId},
  6. };
  7. pub struct View {
  8. seen: FxHashMap<EventId, Event>,
  9. events_queue: EventsQueuePtr,
  10. }
  11. impl View {
  12. pub fn new(events_queue: EventsQueuePtr) -> Self {
  13. Self { seen: FxHashMap::default(), events_queue }
  14. }
  15. pub async fn process(&mut self) -> Result<()> {
  16. loop {
  17. let new_event = self.events_queue.fetch().await?;
  18. // TODO sort the events
  19. self.seen.insert(new_event.hash(), new_event);
  20. }
  21. }
  22. }