Jelajahi Sumber

bin/ircd/model: skip serializing read_confirms inside Event

ghassmo 3 tahun lalu
induk
melakukan
e6f06d6095
2 mengubah file dengan 20 tambahan dan 1 penghapusan
  1. 19 0
      bin/ircd/src/model.rs
  2. 1 1
      bin/ircd/src/view.rs

+ 19 - 0
bin/ircd/src/model.rs

@@ -74,6 +74,7 @@ pub struct Event {
     previous_event_hash: EventId,
     action: EventAction,
     pub timestamp: u64,
+    #[skip_serialize]
     pub read_confirms: u8,
 }
 
@@ -603,4 +604,22 @@ mod tests {
 
         assert_eq!(model.find_head(), id1);
     }
+
+    #[test]
+    fn test_event_hash() {
+        let mut model = Model::new();
+        let root_id = model.current_root;
+
+        let timestamp = get_current_time() + 1;
+        let event = create_message(root_id, "msg", "message", timestamp);
+        let mut event2 = event.clone();
+
+        let event_hash = event.hash();
+
+        event2.read_confirms += 3;
+        let event2_hash = event2.hash();
+
+        assert_eq!(event2_hash, event_hash);
+        assert_ne!(event2.read_confirms, event.read_confirms);
+    }
 }

+ 1 - 1
bin/ircd/src/view.rs

@@ -13,7 +13,7 @@ impl View {
         Self { seen: FxHashMap::default() }
     }
 
-    pub async fn process(&mut self, event_queue: EventQueueArc) -> Result<()>  {
+    pub async fn process(&mut self, event_queue: EventQueueArc) -> Result<()> {
         loop {
             let new_event = event_queue.fetch().await?;
             // TODO sort the events