mirror of
https://github.com/darkrenaissance/darkfi.git
synced 2026-04-28 03:00:18 -04:00
cargo fmt
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user