#[non_exhaustive]pub enum ClientMessage {
Event(Event),
Req {
subscription_id: SubscriptionId,
filters: Vec<Filter>,
},
Close(SubscriptionId),
Auth(Event),
Count {
subscription_id: SubscriptionId,
filter: Filter,
},
NegOpen {
subscription_id: SubscriptionId,
filter: Filter,
initial_message: String,
},
NegMsg {
subscription_id: SubscriptionId,
message: String,
},
NegClose {
subscription_id: SubscriptionId,
},
}Expand description
Messages sent from a client to a relay.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Event(Event)
Publish an event to the relay.
Wire form: ["EVENT", <event>].
Req
Open or replace a subscription with one or more filters.
Wire form: ["REQ", <subscription_id>, <filter1>, <filter2>, …].
Fields
subscription_id: SubscriptionIdSubscription identifier.
Close(SubscriptionId)
Close a subscription.
Wire form: ["CLOSE", <subscription_id>].
Auth(Event)
Reply to a NIP-42 challenge with a signed kind-22242 event.
Wire form: ["AUTH", <event>].
Count
Count events matching a filter (NIP-45).
Wire form: ["COUNT", <subscription_id>, <filter>].
NegOpen
Open a NIP-77 Negentropy reconciliation session.
Wire form (current protocol):
["NEG-OPEN", <subscription_id>, <filter>, <initial_message_hex>].
Fields
subscription_id: SubscriptionIdSubscription identifier the relay will use for follow-up
NEG-MSG / NEG-ERR frames.
NegMsg
One step of an in-flight NIP-77 reconciliation.
Wire form: ["NEG-MSG", <subscription_id>, <message_hex>].
Fields
subscription_id: SubscriptionIdSubscription identifier the client picked in the matching
Self::NegOpen.
NegClose
Close a NIP-77 reconciliation session.
Wire form: ["NEG-CLOSE", <subscription_id>].
Fields
subscription_id: SubscriptionIdSubscription identifier to release on the relay side.
Implementations§
Source§impl ClientMessage
impl ClientMessage
Sourcepub const fn event(event: Event) -> Self
pub const fn event(event: Event) -> Self
Convenience constructor for ClientMessage::Event.
Sourcepub const fn req(subscription_id: SubscriptionId, filters: Vec<Filter>) -> Self
pub const fn req(subscription_id: SubscriptionId, filters: Vec<Filter>) -> Self
Convenience constructor for ClientMessage::Req.
Sourcepub const fn close(subscription_id: SubscriptionId) -> Self
pub const fn close(subscription_id: SubscriptionId) -> Self
Convenience constructor for ClientMessage::Close.
Sourcepub const fn auth(event: Event) -> Self
pub const fn auth(event: Event) -> Self
Convenience constructor for ClientMessage::Auth.
Sourcepub const fn count(subscription_id: SubscriptionId, filter: Filter) -> Self
pub const fn count(subscription_id: SubscriptionId, filter: Filter) -> Self
Convenience constructor for ClientMessage::Count.
Sourcepub const fn neg_open(
subscription_id: SubscriptionId,
filter: Filter,
initial_message: String,
) -> Self
pub const fn neg_open( subscription_id: SubscriptionId, filter: Filter, initial_message: String, ) -> Self
Convenience constructor for ClientMessage::NegOpen.
Sourcepub const fn neg_msg(subscription_id: SubscriptionId, message: String) -> Self
pub const fn neg_msg(subscription_id: SubscriptionId, message: String) -> Self
Convenience constructor for ClientMessage::NegMsg.
Sourcepub const fn neg_close(subscription_id: SubscriptionId) -> Self
pub const fn neg_close(subscription_id: SubscriptionId) -> Self
Convenience constructor for ClientMessage::NegClose.
Trait Implementations§
Source§impl Clone for ClientMessage
impl Clone for ClientMessage
Source§fn clone(&self) -> ClientMessage
fn clone(&self) -> ClientMessage
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ClientMessage
impl Debug for ClientMessage
Source§impl<'de> Deserialize<'de> for ClientMessage
impl<'de> Deserialize<'de> for ClientMessage
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
impl Eq for ClientMessage
Source§impl PartialEq for ClientMessage
impl PartialEq for ClientMessage
Source§impl Serialize for ClientMessage
impl Serialize for ClientMessage
impl StructuralPartialEq for ClientMessage
Auto Trait Implementations§
impl !Freeze for ClientMessage
impl RefUnwindSafe for ClientMessage
impl Send for ClientMessage
impl Sync for ClientMessage
impl Unpin for ClientMessage
impl UnsafeUnpin for ClientMessage
impl UnwindSafe for ClientMessage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.