cargo fmt

This commit is contained in:
narodnik
2021-03-06 07:39:16 +01:00
parent a690df7d46
commit bac61ea6ad

View File

@@ -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;
}