narodnik 5 лет назад
Родитель
Сommit
bac61ea6ad
1 измененных файлов с 24 добавлено и 32 удалено
  1. 24 32
      src/net/message_subscriber.rs

+ 24 - 32
src/net/message_subscriber.rs

@@ -1,15 +1,15 @@
-use std::io;
-use log::*;
-use std::io::Cursor;
-use async_trait::async_trait;
 use async_std::sync::Mutex;
+use async_trait::async_trait;
+use log::*;
 use rand::Rng;
 use std::any::Any;
 use std::collections::HashMap;
+use std::io;
+use std::io::Cursor;
 use std::sync::Arc;
 
 use crate::error::Result;
-use crate::net::error::{NetResult, NetError};
+use crate::net::error::{NetError, NetResult};
 use crate::net::messages::{Message, PacketType};
 use crate::serial::Decodable;
 use crate::serial::Encodable;
@@ -151,15 +151,13 @@ pub trait Message2: 'static + Decodable + Send + Sync {
 pub struct MessageSubscription2<M: Message2> {
     id: MessageSubscriptionID,
     recv_queue: async_channel::Receiver<Arc<M>>,
-    parent: Arc<MessageDispatcher<M>>
+    parent: Arc<MessageDispatcher<M>>,
 }
 
 impl<M: Message2> MessageSubscription2<M> {
     pub async fn receive(&self) -> Arc<M> {
         match self.recv_queue.recv().await {
-            Ok(message) => {
-                message
-            }
+            Ok(message) => message,
             Err(err) => {
                 panic!("MessageSubscription::receive() recv_queue failed! {}", err);
             }
@@ -203,7 +201,7 @@ impl<M: Message2> MessageDispatcher<M> {
         MessageSubscription2 {
             id: sub_id,
             recv_queue: recvr,
-            parent: self
+            parent: self,
         }
     }
 
@@ -244,9 +242,7 @@ impl<M: Message2> MessageDispatcherInterface for MessageDispatcher<M> {
         // send down the pipes
         let cursor = Cursor::new(payload);
         match M::decode(cursor) {
-            Ok(message) => {
-                self.notify_all(message).await
-            }
+            Ok(message) => self.notify_all(message).await,
             Err(err) => {
                 error!("Unable to decode data. Dropping...: {}", err);
             }
@@ -259,7 +255,7 @@ impl<M: Message2> MessageDispatcherInterface for MessageDispatcher<M> {
 }
 
 struct MyVersionMessage {
-    x: u32
+    x: u32,
 }
 
 impl Message2 for MyVersionMessage {
@@ -288,23 +284,26 @@ impl Decodable for MyVersionMessage {
 }
 
 struct MessageSubsystem {
-    dispatchers: Mutex<HashMap<&'static str, Arc<dyn MessageDispatcherInterface>>>
+    dispatchers: Mutex<HashMap<&'static str, Arc<dyn MessageDispatcherInterface>>>,
 }
 
 impl MessageSubsystem {
     pub fn new() -> Self {
-        MessageSubsystem { dispatchers: Mutex::new(HashMap::new()) }
+        MessageSubsystem {
+            dispatchers: Mutex::new(HashMap::new()),
+        }
     }
 
     pub async fn add_dispatch<M: Message2>(&self) {
-        self.dispatchers.lock().await.insert(
-            M::name(),
-            Arc::new(MessageDispatcher::<M>::new()),
-        );
+        self.dispatchers
+            .lock()
+            .await
+            .insert(M::name(), Arc::new(MessageDispatcher::<M>::new()));
     }
 
     pub async fn subscribe<M: Message2>(&self) -> NetResult<MessageSubscription2<M>> {
-        let dispatcher = self.dispatchers
+        let dispatcher = self
+            .dispatchers
             .lock()
             .await
             .get(MyVersionMessage::name())
@@ -314,10 +313,8 @@ impl MessageSubsystem {
             Some(dispatcher) => {
                 let dispatcher: Arc<MessageDispatcher<M>> = dispatcher
                     .as_any()
-                    .downcast::<MessageDispatcher<
-                    M,
-                >>().expect(
-                    "Multiple messages registered with different names");
+                    .downcast::<MessageDispatcher<M>>()
+                    .expect("Multiple messages registered with different names");
 
                 dispatcher.subscribe().await
             }
@@ -332,11 +329,7 @@ impl MessageSubsystem {
     }
 
     pub async fn trigger(&self, name: &str, data: Vec<u8>) {
-        let dispatcher = self.dispatchers
-            .lock()
-            .await
-            .get(name)
-            .cloned();
+        let dispatcher = self.dispatchers.lock().await.get(name).cloned();
 
         match dispatcher {
             Some(dispatcher) => {
@@ -349,7 +342,7 @@ impl MessageSubsystem {
 
 pub async fn doteste() {
     println!("hello");
-    
+
     let subsystem = MessageSubsystem::new();
     subsystem.add_dispatch::<MyVersionMessage>().await;
 
@@ -375,4 +368,3 @@ pub async fn doteste() {
 
     sub.unsubscribe().await;
 }
-