#[non_exhaustive]pub enum CallMemberEventContent {
    LegacyContent(LegacyMembershipContent),
    SessionContent(SessionMembershipData),
    Empty(EmptyMembershipData),
}events only.Expand description
The member state event for a MatrixRTC session.
This is the object containing all the data related to a Matrix users participation in a MatrixRTC session.
This is a unit struct with the enum CallMemberEventContent because a Ruma state event cannot
be an enum and we need this to be an untagged enum for parsing purposes. (see
CallMemberEventContent)
This struct also exposes allows to call the methods from CallMemberEventContent.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
LegacyContent(LegacyMembershipContent)
The legacy format for m.call.member events. (An array of memberships. The devices of one user.)
SessionContent(SessionMembershipData)
Normal membership events. One event per membership. Multiple state keys will be used to describe multiple devices for one user.
Empty(EmptyMembershipData)
An empty content means this user has been in a rtc session but is not anymore.
Implementations§
Source§impl CallMemberEventContent
 
impl CallMemberEventContent
Sourcepub fn new_legacy(
    memberships: Vec<LegacyMembershipData>,
) -> CallMemberEventContent
 
pub fn new_legacy( memberships: Vec<LegacyMembershipData>, ) -> CallMemberEventContent
Creates a new CallMemberEventContent with LegacyMembershipData.
Sourcepub fn new(
    application: Application,
    device_id: OwnedDeviceId,
    focus_active: ActiveFocus,
    foci_preferred: Vec<Focus>,
    created_ts: Option<MilliSecondsSinceUnixEpoch>,
    expires: Option<Duration>,
) -> CallMemberEventContent
 
pub fn new( application: Application, device_id: OwnedDeviceId, focus_active: ActiveFocus, foci_preferred: Vec<Focus>, created_ts: Option<MilliSecondsSinceUnixEpoch>, expires: Option<Duration>, ) -> CallMemberEventContent
Creates a new CallMemberEventContent with SessionMembershipData.
§Arguments
application- The application that is creating the membership.device_id- The device ID of the member.focus_active- The active focus state of the member.foci_preferred- The preferred focus states of the member.created_ts- The timestamp when this state event chain for memberships was created. when updating the event thecreated_tsshould be copied from the previous state. Set toNoneif this is the initial join event for the session.expires- The time after which the event is considered as expired. Defaults to 4 hours.
Sourcepub fn new_empty(leave_reason: Option<LeaveReason>) -> CallMemberEventContent
 
pub fn new_empty(leave_reason: Option<LeaveReason>) -> CallMemberEventContent
Creates a new Empty CallMemberEventContent representing a left membership.
Sourcepub fn active_memberships(
    &self,
    origin_server_ts: Option<MilliSecondsSinceUnixEpoch>,
) -> Vec<MembershipData<'_>>
 
pub fn active_memberships( &self, origin_server_ts: Option<MilliSecondsSinceUnixEpoch>, ) -> Vec<MembershipData<'_>>
All non expired memberships in this member event.
In most cases you want to use this method instead of the public memberships field. The memberships field will also include expired events.
This copies all the memberships and converts them
§Arguments
origin_server_ts- optionally theorigin_server_tscan be passed as a fallback in the Membership does not containMembershipData::created_ts. (origin_server_tswill be ignored ifMembershipData::created_tsisSome)
Sourcepub fn memberships(&self) -> Vec<MembershipData<'_>>
 
pub fn memberships(&self) -> Vec<MembershipData<'_>>
All the memberships for this event. Can only contain multiple elements in the case of legacy
m.call.member state events.
Sourcepub fn set_created_ts_if_none(
    &mut self,
    origin_server_ts: MilliSecondsSinceUnixEpoch,
)
 
pub fn set_created_ts_if_none( &mut self, origin_server_ts: MilliSecondsSinceUnixEpoch, )
Set the created_ts in this event.
Each call member event contains the origin_server_ts and content.create_ts.
content.create_ts is undefined for the initial event of a session (because the
origin_server_ts is not known on the client).
In the rust sdk we want to copy over the origin_server_ts of the event into the content.
(This allows to use MinimalStateEvents and still be able to determine if a membership is
expired)
Trait Implementations§
Source§impl Clone for CallMemberEventContent
 
impl Clone for CallMemberEventContent
Source§fn clone(&self) -> CallMemberEventContent
 
fn clone(&self) -> CallMemberEventContent
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CallMemberEventContent
 
impl Debug for CallMemberEventContent
Source§impl<'de> Deserialize<'de> for CallMemberEventContent
 
impl<'de> Deserialize<'de> for CallMemberEventContent
Source§fn deserialize<__D>(
    __deserializer: __D,
) -> Result<CallMemberEventContent, <__D as Deserializer<'de>>::Error>where
    __D: Deserializer<'de>,
 
fn deserialize<__D>(
    __deserializer: __D,
) -> Result<CallMemberEventContent, <__D as Deserializer<'de>>::Error>where
    __D: Deserializer<'de>,
Source§impl From<CallMemberEventContent> for AnyStateEventContent
 
impl From<CallMemberEventContent> for AnyStateEventContent
Source§fn from(c: CallMemberEventContent) -> AnyStateEventContent
 
fn from(c: CallMemberEventContent) -> AnyStateEventContent
Source§impl PartialEq for CallMemberEventContent
 
impl PartialEq for CallMemberEventContent
Source§impl PossiblyRedactedStateEventContent for CallMemberEventContent
 
impl PossiblyRedactedStateEventContent for CallMemberEventContent
Source§type StateKey = CallMemberStateKey
 
type StateKey = CallMemberStateKey
state_key field.Source§fn event_type(&self) -> StateEventType
 
fn event_type(&self) -> StateEventType
m.room.name.Source§impl RedactContent for CallMemberEventContent
 
impl RedactContent for CallMemberEventContent
Source§type Redacted = RedactedCallMemberEventContent
 
type Redacted = RedactedCallMemberEventContent
Source§fn redact(
    self,
    _rules: &RedactionRules,
) -> <CallMemberEventContent as RedactContent>::Redacted
 
fn redact( self, _rules: &RedactionRules, ) -> <CallMemberEventContent as RedactContent>::Redacted
self into a redacted form (removing most or all fields) according to the spec. Read moreSource§impl Serialize for CallMemberEventContent
 
impl Serialize for CallMemberEventContent
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,
Source§impl StateEventContent for CallMemberEventContent
 
impl StateEventContent for CallMemberEventContent
Source§type StateKey = CallMemberStateKey
 
type StateKey = CallMemberStateKey
state_key field.Source§fn event_type(&self) -> StateEventType
 
fn event_type(&self) -> StateEventType
m.room.name.Source§impl StaticStateEventContent for CallMemberEventContent
 
impl StaticStateEventContent for CallMemberEventContent
Source§type PossiblyRedacted = CallMemberEventContent
 
type PossiblyRedacted = CallMemberEventContent
Source§type Unsigned = StateUnsigned<<CallMemberEventContent as StaticStateEventContent>::PossiblyRedacted>
 
type Unsigned = StateUnsigned<<CallMemberEventContent as StaticStateEventContent>::PossiblyRedacted>
unsigned field.