#[non_exhaustive]pub struct RtcNotificationEventContent {
    pub sender_ts: MilliSecondsSinceUnixEpoch,
    pub lifetime: Duration,
    pub mentions: Option<Mentions>,
    pub relates_to: Option<Reference>,
    pub notification_type: NotificationType,
}events only.Expand description
The content of an m.rtc.notification event.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.sender_ts: MilliSecondsSinceUnixEpochLocal timestamp observed by the sender device.
Used with lifetime to determine validity; receivers SHOULD compare with
origin_server_ts and prefer it if the difference is large.
lifetime: DurationRelative time from sender_ts during which the notification is considered valid.
mentions: Option<Mentions>Intentional mentions determining who should be notified.
relates_to: Option<Reference>Optional reference to the related m.rtc.member event.
notification_type: NotificationTypeHow this notification should notify the receiver.
Implementations§
Source§impl RtcNotificationEventContent
 
impl RtcNotificationEventContent
Sourcepub fn new(
    sender_ts: MilliSecondsSinceUnixEpoch,
    lifetime: Duration,
    notification_type: NotificationType,
) -> RtcNotificationEventContent
 
pub fn new( sender_ts: MilliSecondsSinceUnixEpoch, lifetime: Duration, notification_type: NotificationType, ) -> RtcNotificationEventContent
Creates a new RtcNotificationEventContent with the given configuration.
Sourcepub fn expiration_ts(
    &self,
    origin_server_ts: MilliSecondsSinceUnixEpoch,
    max_sender_ts_offset: Option<u32>,
) -> MilliSecondsSinceUnixEpoch
 
pub fn expiration_ts( &self, origin_server_ts: MilliSecondsSinceUnixEpoch, max_sender_ts_offset: Option<u32>, ) -> MilliSecondsSinceUnixEpoch
Calculates the timestamp at which this notification is considered invalid.
This calculation is based on MSC4075 and tries to use the sender_ts as the starting point
and the lifetime as the duration for which the notification is valid.
The sender_ts cannot be trusted since it is a generated value by the sending client.
To mitigate issue because of misconfigured client clocks, the MSC requires
that the origin_server_ts is used as the starting point if the difference is large.
§Arguments:
max_sender_ts_offsetis the maximum allowed offset between the two timestamps. (default 20s)origin_server_tshas to be set to the origin_server_ts from the event containing this event content.
§Examples
To start a timer until this client should stop ringing for this notification:
let duration_ring = MilliSecondsSinceUnixEpoch::now().saturated_sub(content.expiration_ts(event. origin_server_ts(), None));
Trait Implementations§
Source§impl Clone for RtcNotificationEventContent
 
impl Clone for RtcNotificationEventContent
Source§fn clone(&self) -> RtcNotificationEventContent
 
fn clone(&self) -> RtcNotificationEventContent
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RtcNotificationEventContent
 
impl Debug for RtcNotificationEventContent
Source§impl<'de> Deserialize<'de> for RtcNotificationEventContent
 
impl<'de> Deserialize<'de> for RtcNotificationEventContent
Source§fn deserialize<__D>(
    __deserializer: __D,
) -> Result<RtcNotificationEventContent, <__D as Deserializer<'de>>::Error>where
    __D: Deserializer<'de>,
 
fn deserialize<__D>(
    __deserializer: __D,
) -> Result<RtcNotificationEventContent, <__D as Deserializer<'de>>::Error>where
    __D: Deserializer<'de>,
Source§impl From<RtcNotificationEventContent> for AnyMessageLikeEventContent
 
impl From<RtcNotificationEventContent> for AnyMessageLikeEventContent
Source§fn from(c: RtcNotificationEventContent) -> AnyMessageLikeEventContent
 
fn from(c: RtcNotificationEventContent) -> AnyMessageLikeEventContent
Source§impl MessageLikeEventContent for RtcNotificationEventContent
 
impl MessageLikeEventContent for RtcNotificationEventContent
Source§fn event_type(&self) -> MessageLikeEventType
 
fn event_type(&self) -> MessageLikeEventType
m.room.message.Source§impl RedactContent for RtcNotificationEventContent
 
impl RedactContent for RtcNotificationEventContent
Source§type Redacted = RedactedRtcNotificationEventContent
 
type Redacted = RedactedRtcNotificationEventContent
Source§fn redact(self, _rules: &RedactionRules) -> RedactedRtcNotificationEventContent
 
fn redact(self, _rules: &RedactionRules) -> RedactedRtcNotificationEventContent
self into a redacted form (removing most or all fields) according to the spec. Read more