actix_telepathy/cluster/connector/
messages.rs1use 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>);