pub enum HiveEvent {
Show 18 variants
PeerDiscovered {
peer: HivePeer,
},
PeerConnected {
node_id: NodeId,
},
PeerDisconnected {
node_id: NodeId,
reason: DisconnectReason,
},
PeerLost {
node_id: NodeId,
},
EmergencyReceived {
from_node: NodeId,
},
AckReceived {
from_node: NodeId,
},
EventReceived {
from_node: NodeId,
event_type: EventType,
},
DocumentSynced {
from_node: NodeId,
total_count: u64,
},
MeshStateChanged {
peer_count: usize,
connected_count: usize,
},
AllPeersAcked {
ack_count: usize,
},
PeerE2eeEstablished {
peer_node_id: NodeId,
},
PeerE2eeClosed {
peer_node_id: NodeId,
},
PeerE2eeMessageReceived {
from_node: NodeId,
data: Vec<u8>,
},
PeerE2eeFailed {
peer_node_id: NodeId,
error: String,
},
SecurityViolation {
kind: SecurityViolationKind,
source: Option<String>,
},
MessageRelayed {
origin_node: NodeId,
relay_count: usize,
hop_count: u8,
},
DuplicateMessageDropped {
origin_node: NodeId,
seen_count: u32,
},
MessageTtlExpired {
origin_node: NodeId,
hop_count: u8,
},
}Expand description
Events emitted by the HIVE mesh
These events notify observers about changes in mesh state, peer lifecycle, and document synchronization.
Variants§
PeerDiscovered
A new peer was discovered via BLE scanning
PeerConnected
A peer connected to us (either direction)
PeerDisconnected
A peer disconnected
Fields
reason: DisconnectReasonReason for disconnection
PeerLost
A peer was removed due to timeout (stale)
EmergencyReceived
An emergency event was received from a peer
AckReceived
An ACK event was received from a peer
EventReceived
A generic event was received from a peer
DocumentSynced
A document was synced with a peer
MeshStateChanged
Mesh state changed (peer count, connected count)
Fields
AllPeersAcked
All peers have acknowledged an emergency
PeerE2eeEstablished
E2EE session established with a peer
PeerE2eeClosed
E2EE session closed with a peer
PeerE2eeMessageReceived
Received an E2EE encrypted message from a peer
PeerE2eeFailed
E2EE session failed to establish
SecurityViolation
A security violation was detected
Fields
kind: SecurityViolationKindType of violation
MessageRelayed
A message was relayed to other peers
Fields
DuplicateMessageDropped
A duplicate message was detected and dropped
Fields
MessageTtlExpired
A message was dropped due to TTL expiration
Implementations§
Source§impl HiveEvent
impl HiveEvent
Sourcepub fn peer_discovered(peer: HivePeer) -> Self
pub fn peer_discovered(peer: HivePeer) -> Self
Create a peer discovered event
Sourcepub fn peer_connected(node_id: NodeId) -> Self
pub fn peer_connected(node_id: NodeId) -> Self
Create a peer connected event
Sourcepub fn peer_disconnected(node_id: NodeId, reason: DisconnectReason) -> Self
pub fn peer_disconnected(node_id: NodeId, reason: DisconnectReason) -> Self
Create a peer disconnected event
Sourcepub fn emergency_received(from_node: NodeId) -> Self
pub fn emergency_received(from_node: NodeId) -> Self
Create an emergency received event
Sourcepub fn ack_received(from_node: NodeId) -> Self
pub fn ack_received(from_node: NodeId) -> Self
Create an ACK received event
Sourcepub fn event_received(from_node: NodeId, event_type: EventType) -> Self
pub fn event_received(from_node: NodeId, event_type: EventType) -> Self
Create a generic event received
Sourcepub fn document_synced(from_node: NodeId, total_count: u64) -> Self
pub fn document_synced(from_node: NodeId, total_count: u64) -> Self
Create a document synced event
Sourcepub fn peer_e2ee_established(peer_node_id: NodeId) -> Self
pub fn peer_e2ee_established(peer_node_id: NodeId) -> Self
Create a peer E2EE established event
Sourcepub fn peer_e2ee_closed(peer_node_id: NodeId) -> Self
pub fn peer_e2ee_closed(peer_node_id: NodeId) -> Self
Create a peer E2EE closed event
Sourcepub fn peer_e2ee_message_received(from_node: NodeId, data: Vec<u8>) -> Self
pub fn peer_e2ee_message_received(from_node: NodeId, data: Vec<u8>) -> Self
Create a peer E2EE message received event
Sourcepub fn peer_e2ee_failed(peer_node_id: NodeId, error: String) -> Self
pub fn peer_e2ee_failed(peer_node_id: NodeId, error: String) -> Self
Create a peer E2EE failed event
Sourcepub fn security_violation(
kind: SecurityViolationKind,
source: Option<String>,
) -> Self
pub fn security_violation( kind: SecurityViolationKind, source: Option<String>, ) -> Self
Create a security violation event