summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2021-12-10 17:59:29 +0100
committerMatthias Beyer <mail@beyermatthias.de>2021-12-10 17:59:29 +0100
commitda6f7fc5e837c96e5e975e41388324a0c387eff1 (patch)
tree84e48e71f5fdbde580c367124e0c74e6683a5dd2
parent5856b8b59044c5c3dc007a35191931fb13b6aef1 (diff)
Refactor: Split gossip module into submodules
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--lib/src/reactor/gossip/ctrl.rs15
-rw-r--r--lib/src/reactor/gossip/mod.rs (renamed from lib/src/reactor/gossip.rs)35
-rw-r--r--lib/src/reactor/gossip/msg.rs17
3 files changed, 38 insertions, 29 deletions
diff --git a/lib/src/reactor/gossip/ctrl.rs b/lib/src/reactor/gossip/ctrl.rs
new file mode 100644
index 0000000..5e2e805
--- /dev/null
+++ b/lib/src/reactor/gossip/ctrl.rs
@@ -0,0 +1,15 @@
+use anyhow::Result;
+
+#[derive(Debug)]
+pub enum GossipRequest {
+ Ping,
+ PublishMe,
+}
+
+#[derive(Debug)]
+pub enum GossipReply {
+ Pong,
+ NoHead,
+ PublishMeResult(Result<()>),
+}
+
diff --git a/lib/src/reactor/gossip.rs b/lib/src/reactor/gossip/mod.rs
index 0da0c97..884f42a 100644
--- a/lib/src/reactor/gossip.rs
+++ b/lib/src/reactor/gossip/mod.rs
@@ -17,6 +17,12 @@ use crate::reactor::ctrl::ReactorReceiver;
use crate::reactor::ctrl::ReactorSender;
use crate::reactor::ctrl::ReplyChannel;
+mod ctrl;
+pub use ctrl::GossipRequest;
+pub use ctrl::GossipReply;
+
+mod msg;
+pub use msg::GossipMessage;
#[derive(Debug)]
pub struct GossipReactor {
@@ -24,35 +30,6 @@ pub struct GossipReactor {
gossip_topic_name: String,
}
-#[derive(Debug)]
-pub enum GossipRequest {
- Ping,
- PublishMe,
-}
-
-#[derive(Debug)]
-pub enum GossipReply {
- Pong,
- NoHead,
- PublishMeResult(Result<()>),
-}
-
-#[derive(Debug, serde::Serialize, serde::Deserialize)]
-pub enum GossipMessage {
- CurrentProfileState {
- peer_id: Vec<u8>,
- cid: Vec<u8>,
- },
-}
-
-impl GossipMessage {
- fn into_bytes(self) -> Result<Vec<u8>> {
- serde_json::to_string(&self)
- .map(String::into_bytes)
- .map_err(anyhow::Error::from)
- }
-}
-
impl GossipReactor {
pub fn new(profile: Arc<RwLock<Profile>>, gossip_topic_name: String) -> (Self, ReactorSender<GossipRequest, GossipReply>) {
diff --git a/lib/src/reactor/gossip/msg.rs b/lib/src/reactor/gossip/msg.rs
new file mode 100644
index 0000000..049fc68
--- /dev/null
+++ b/lib/src/reactor/gossip/msg.rs
@@ -0,0 +1,17 @@
+use anyhow::Result;
+
+#[derive(Debug, serde::Serialize, serde::Deserialize)]
+pub enum GossipMessage {
+ CurrentProfileState {
+ peer_id: Vec<u8>,
+ cid: Vec<u8>,
+ },
+}
+
+impl GossipMessage {
+ pub(super) fn into_bytes(self) -> Result<Vec<u8>> {
+ serde_json::to_string(&self)
+ .map(String::into_bytes)
+ .map_err(anyhow::Error::from)
+ }
+}