#[non_exhaustive]pub struct LegacyMembershipData {
pub application: Application,
pub device_id: OwnedDeviceId,
pub expires: Duration,
pub created_ts: Option<MilliSecondsSinceUnixEpoch>,
pub foci_active: Vec<Focus>,
pub membership_id: String,
}
unstable-msc3401
only.Expand description
A membership describes one of the sessions this user currently partakes.
The application defines the type of the session.
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.application: Application
The type of the MatrixRTC session the membership belongs to.
e.g. call, spacial, document…
device_id: OwnedDeviceId
The device id of this membership.
The same user can join with their phone/computer.
expires: Duration
The duration in milliseconds relative to the time this membership joined during which the membership is valid.
The time a member has joined is defined as:
MIN(content.created_ts, event.origin_server_ts)
created_ts: Option<MilliSecondsSinceUnixEpoch>
Stores a copy of the origin_server_ts
of the initial session event.
If the membership is updated this field will be used to track to
original origin_server_ts
.
foci_active: Vec<Focus>
A list of the foci in use for this membership.
membership_id: String
The id of the membership.
This is required to guarantee uniqueness of the event. Sending the same state event twice to synapse makes the HS drop the second one and return 200.
Implementations§
Source§impl LegacyMembershipData
impl LegacyMembershipData
Sourcepub fn is_expired(
&self,
origin_server_ts: Option<MilliSecondsSinceUnixEpoch>,
) -> bool
pub fn is_expired( &self, origin_server_ts: Option<MilliSecondsSinceUnixEpoch>, ) -> bool
Checks if the event is expired.
Defaults to using created_ts
of the LegacyMembershipData
.
If no origin_server_ts
is provided and the event does not contain created_ts
the event will be considered as not expired.
In this case, a warning will be logged.
§Arguments
origin_server_ts
- a fallback ifLegacyMembershipData::created_ts
is not present
Trait Implementations§
Source§impl Clone for LegacyMembershipData
impl Clone for LegacyMembershipData
Source§fn clone(&self) -> LegacyMembershipData
fn clone(&self) -> LegacyMembershipData
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for LegacyMembershipData
impl Debug for LegacyMembershipData
Source§impl<'de> Deserialize<'de> for LegacyMembershipData
impl<'de> Deserialize<'de> for LegacyMembershipData
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<LegacyMembershipData, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<LegacyMembershipData, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl From<LegacyMembershipDataInit> for LegacyMembershipData
impl From<LegacyMembershipDataInit> for LegacyMembershipData
Source§fn from(init: LegacyMembershipDataInit) -> LegacyMembershipData
fn from(init: LegacyMembershipDataInit) -> LegacyMembershipData
Source§impl PartialEq for LegacyMembershipData
impl PartialEq for LegacyMembershipData
Source§impl Serialize for LegacyMembershipData
impl Serialize for LegacyMembershipData
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for LegacyMembershipData
Auto Trait Implementations§
impl Freeze for LegacyMembershipData
impl RefUnwindSafe for LegacyMembershipData
impl Send for LegacyMembershipData
impl Sync for LegacyMembershipData
impl Unpin for LegacyMembershipData
impl UnwindSafe for LegacyMembershipData
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,
§impl<T> CompatExt for T
impl<T> CompatExt for T
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
Source§fn consume_handle(handle: Handle) -> Arc<T>
fn consume_handle(handle: Handle) -> Arc<T>
Arc<>
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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