pub struct OpenedMessage {
pub message_id: EventId,
pub author: PublicKey,
pub content: String,
pub channel_id: ChannelId,
pub epoch: Epoch,
pub ms: Option<u64>,
pub created_at: Timestamp,
pub kind: u16,
pub attachments: Vec<Attachment>,
pub citation: Option<AuthorityCitation>,
pub wrapper_id: EventId,
pub tags: Tags,
}Expand description
A successfully opened and fully-verified Community message.
Fields§
§message_id: EventIdInner event id — the message_id, the dedup/display key.
Verified real author.
content: String§channel_id: ChannelId§epoch: Epoch§ms: Option<u64>Ordering timestamp (epoch ms) via the SHARED rumor::resolve_message_timestamp (ms convention +
clamp). Kept here because the transport sorts fetched events by it before they become
Messages; reply-ref + emoji parsing, by contrast, is solely process_rumor’s job off tags.
created_at: TimestampInner event’s real send time (NOT randomized).
kind: u16Append-plane sub-kind: 3300 message, 3301 reaction, 3302 edit.
attachments: Vec<Attachment>File attachments (one per NIP-92 imeta tag). A Community message can carry a
caption (content) plus N attachments in the same event — see attachments module.
citation: Option<AuthorityCitation>The authority citation (vac tag), if the inner carried one — present on a non-owner
moderation-hide (3305) naming the grant the hider claims authority under. The hide consumer
(apply_delete) resolves it against the persisted grant head (version-pinned authority).
wrapper_id: EventIdThe OUTER wire event id (the relay-addressable event that carried this inner). The
transport’s dedup key — persisted as the inner’s wrapper_event_id so a re-fetched
channel page skips it pre-decryption, exactly as a DM gift-wrap id does.
The verified inner event’s raw tags — handed to the SHARED process_rumor content parser so
reply/emoji/ms parsing is identical across transports (the binding tags were already checked).
Trait Implementations§
Source§impl Clone for OpenedMessage
impl Clone for OpenedMessage
Source§fn clone(&self) -> OpenedMessage
fn clone(&self) -> OpenedMessage
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !Freeze for OpenedMessage
impl RefUnwindSafe for OpenedMessage
impl Send for OpenedMessage
impl Sync for OpenedMessage
impl Unpin for OpenedMessage
impl UnsafeUnpin for OpenedMessage
impl UnwindSafe for OpenedMessage
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more