Skip to main content

actix_telepathy/cluster/connector/
messages.rs

1use crate::NetworkInterface;
2use crate::{DefaultSerialization, RemoteMessage};
3use actix::prelude::*;
4use serde::{Deserialize, Serialize};
5use std::collections::HashSet;
6use std::net::SocketAddr;
7
8#[derive(Message)]
9#[rtype(result = "Result<Vec<Addr<NetworkInterface>>, ()>")]
10pub struct NodeResolving {
11    pub addrs: Vec<SocketAddr>,
12}
13
14#[derive(Serialize, Deserialize, Clone, Debug)]
15pub enum GossipEvent {
16    Join,
17    Leave,
18}
19
20#[derive(RemoteMessage, Serialize, Deserialize, Debug, Clone)]
21pub struct GossipMessage {
22    pub event: GossipEvent,
23    pub addr: SocketAddr,
24    pub seen: HashSet<SocketAddr>,
25}
26
27#[derive(RemoteMessage, Serialize, Deserialize, Debug, Clone)]
28pub struct GossipJoining {
29    pub about_to_join: usize,
30}
31
32#[derive(RemoteMessage, Serialize, Deserialize, Debug, Clone)]
33pub struct SingleSeedMembers(pub Vec<SocketAddr>);