logo
pub struct RoomMemberEventContent {
    pub avatar_url: Option<OwnedMxcUri>,
    pub displayname: Option<String>,
    pub is_direct: Option<bool>,
    pub membership: MembershipState,
    pub third_party_invite: Option<ThirdPartyInvite>,
    pub blurhash: Option<String>,
    pub reason: Option<String>,
    pub join_authorized_via_users_server: Option<OwnedUserId>,
}
Available on crate feature events only.
Expand description

The content of an m.room.member event.

The current membership state of a user in the room.

Adjusts the membership state for a user in a room. It is preferable to use the membership APIs (/rooms/<room id>/invite etc) when performing membership actions rather than adjusting the state directly as there are a restricted set of valid transformations. For example, user A cannot force user B to join a room, and trying to force this state change directly will fail.

This event may also include an invite_room_state key inside the event’s unsigned data, but Ruma doesn’t currently expose this; see #998.

The user for which a membership applies is represented by the state_key. Under some conditions, the sender and state_key may not match - this may be interpreted as the sender affecting the membership state of the state_key user.

The membership for a given user can change over time. Previous membership can be retrieved from the prev_content object on an event. If not present, the user’s previous membership must be assumed as leave.

Fields

avatar_url: Option<OwnedMxcUri>

The avatar URL for this user, if any.

This is added by the homeserver. If you activate the compat feature, this field being an empty string in JSON will result in None here during deserialization.

displayname: Option<String>

The display name for this user, if any.

This is added by the homeserver.

is_direct: Option<bool>

Flag indicating whether the room containing this event was created with the intention of being a direct chat.

membership: MembershipState

The membership state of this user.

third_party_invite: Option<ThirdPartyInvite>

If this member event is the successor to a third party invitation, this field will contain information about that invitation.

blurhash: Option<String>
Available on crate feature unstable-msc2448 only.

The BlurHash for the avatar pointed to by avatar_url.

This uses the unstable prefix in MSC2448.

reason: Option<String>

User-supplied text for why their membership has changed.

For kicks and bans, this is typically the reason for the kick or ban. For other membership changes, this is a way for the user to communicate their intent without having to send a message to the room, such as in a case where Bob rejects an invite from Alice about an upcoming concert, but can’t make it that day.

Clients are not recommended to show this reason to users when receiving an invite due to the potential for spam and abuse. Hiding the reason behind a button or other component is recommended.

join_authorized_via_users_server: Option<OwnedUserId>

Arbitrarily chosen UserId (MxID) of a local user who can send an invite.

Implementations

Creates a new RoomMemberEventContent with the given membership state.

Obtain the details about this event that are required to calculate a membership change.

This is required when you want to calculate the change a redacted m.room.member event made.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
The Rust enum for the event kind’s known types.
Get the event’s type, like m.room.message.
Converts to this type from the input type.
The redacted form of the event’s content.
Transform self into a redacted form (removing most or all fields) according to the spec. Read more
Serialize this value into the given Serde serializer. Read more
The type of the event’s state_key field.
The type of the event’s unsigned field.
The event’s “kind”. Read more
The event type.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more