use nostr::event::Event;
use nostr::message::{RelayMessage, SubscriptionId};
use super::status::RelayStatus;
/// Relay Notification
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum RelayNotification {
/// Received an [`Event`]. Does not include events sent by this client.
Event {
/// Subscription ID
subscription_id: SubscriptionId,
/// Event
event: Box<Event>,
},
/// Received a [`RelayMessage`]. Includes messages wrapping events that were sent by this client.
Message {
/// Relay Message
message: Box<RelayMessage<'static>>,
},
/// Relay status changed
RelayStatus {
/// Relay Status
status: RelayStatus,
},
/// Authenticated to relay
///
/// <https://github.com/nostr-protocol/nips/blob/master/42.md>
Authenticated,
/// Authentication failed
AuthenticationFailed,
}