PossiblyRedactedRoomMemberEventContent

Struct PossiblyRedactedRoomMemberEventContent 

#[non_exhaustive]
pub struct PossiblyRedactedRoomMemberEventContent { pub avatar_url: Option<OwnedMxcUri>, pub displayname: Option<String>, pub is_direct: Option<bool>, pub membership: MembershipState, pub third_party_invite: Option<PossiblyRedactedThirdPartyInvite>, pub blurhash: Option<String>, pub reason: Option<String>, pub join_authorized_via_users_server: Option<OwnedUserId>, }
Expand description

The possibly redacted form of RoomMemberEventContent.

This type is used when it’s not obvious whether the content is redacted or not.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§avatar_url: Option<OwnedMxcUri>

The avatar URL for this user, if any.

This is added by the homeserver. If you activate the compat-empty-string-null 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<PossiblyRedactedThirdPartyInvite>

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

§blurhash: Option<String>

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§

§

impl PossiblyRedactedRoomMemberEventContent

pub fn new( membership: MembershipState, ) -> PossiblyRedactedRoomMemberEventContent

Creates a new PossiblyRedactedRoomMemberEventContent with the given membership state.

pub fn details(&self) -> MembershipDetails<'_>

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.

pub fn membership_change<'a>( &'a self, prev_details: Option<MembershipDetails<'a>>, sender: &UserId, state_key: &UserId, ) -> MembershipChange<'a>

Helper function for membership change.

This requires data from the full event:

  • The previous details computed from event.unsigned.prev_content,
  • The sender of the event,
  • The state key of the event.

Check the specification for details.

Trait Implementations§

§

impl Clone for PossiblyRedactedRoomMemberEventContent

§

fn clone(&self) -> PossiblyRedactedRoomMemberEventContent

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for PossiblyRedactedRoomMemberEventContent

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for PossiblyRedactedRoomMemberEventContent

§

fn deserialize<__D>( __deserializer: __D, ) -> Result<PossiblyRedactedRoomMemberEventContent, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl From<PossiblyRedactedRoomMemberEventContent> for AnyPossiblyRedactedStateEventContent

§

fn from( c: PossiblyRedactedRoomMemberEventContent, ) -> AnyPossiblyRedactedStateEventContent

Converts to this type from the input type.
§

impl From<RedactedRoomMemberEventContent> for PossiblyRedactedRoomMemberEventContent

§

fn from( value: RedactedRoomMemberEventContent, ) -> PossiblyRedactedRoomMemberEventContent

Converts to this type from the input type.
§

impl From<RoomMemberEventContent> for PossiblyRedactedRoomMemberEventContent

§

fn from(value: RoomMemberEventContent) -> PossiblyRedactedRoomMemberEventContent

Converts to this type from the input type.
§

impl PossiblyRedactedStateEventContent for PossiblyRedactedRoomMemberEventContent

§

type StateKey = OwnedUserId

The type of the event’s state_key field.
§

fn event_type(&self) -> StateEventType

Get the event’s type, like m.room.name.
§

impl RedactContent for PossiblyRedactedRoomMemberEventContent

§

type Redacted = PossiblyRedactedRoomMemberEventContent

The redacted form of the event’s content.
§

fn redact( self, rules: &RedactionRules, ) -> PossiblyRedactedRoomMemberEventContent

Transform self into a redacted form (removing most or all fields) according to the spec. Read more
§

impl Serialize for PossiblyRedactedRoomMemberEventContent

§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl StaticEventContent for PossiblyRedactedRoomMemberEventContent

§

const TYPE: &'static str = RoomMemberEventContent::TYPE

The statically-known part of the event type. Read more
§

type IsPrefix = <RoomMemberEventContent as StaticEventContent>::IsPrefix

Whether the statically-known part of the event type is the prefix. Read more
§

impl JsonCastable<AnyPossiblyRedactedStateEventContent> for PossiblyRedactedRoomMemberEventContent

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> CompatExt for T

§

fn compat(self) -> Compat<T>

Applies the [Compat] adapter by value. Read more
§

fn compat_ref(&self) -> Compat<&T>

Applies the [Compat] adapter by shared reference. Read more
§

fn compat_mut(&mut self) -> Compat<&mut T>

Applies the [Compat] adapter by mutable reference. Read more
§

impl<T> EventContentFromType for T

§

fn from_parts(_event_type: &str, content: &RawValue) -> Result<T, Error>

Constructs this event content from the given event type and JSON.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, UT> HandleAlloc<UT> for T
where T: Send + Sync,

Source§

fn new_handle(value: Arc<T>) -> Handle

Create a new handle for an Arc value Read more
Source§

unsafe fn clone_handle(handle: Handle) -> Handle

Clone a handle Read more
Source§

unsafe fn consume_handle(handle: Handle) -> Arc<T>

Consume a handle, getting back the initial Arc<> Read more
Source§

unsafe fn get_arc(handle: Handle) -> Arc<Self>

Get a clone of the Arc<> using a “borrowed” handle. Read more
Source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

Source§

const WITNESS: W = W::MAKE

A constant of the type witness
Source§

impl<T> Identity for T
where T: ?Sized,

Source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
Source§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

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

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
Source§

impl<T> AsyncTraitDeps for T

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> JsonCastable<CanonicalJsonValue> for T

§

impl<T> JsonCastable<Value> for T

Source§

impl<T> MaybeSendSync for T

Source§

impl<T> SendOutsideWasm for T
where T: Send,

Source§

impl<T> SyncOutsideWasm for T
where T: Sync,