#[non_exhaustive]pub enum MessageType {
Audio(AudioMessageEventContent),
Emote(EmoteMessageEventContent),
File(FileMessageEventContent),
Image(ImageMessageEventContent),
Location(LocationMessageEventContent),
Notice(NoticeMessageEventContent),
ServerNotice(ServerNoticeMessageEventContent),
Text(TextMessageEventContent),
Video(VideoMessageEventContent),
VerificationRequest(KeyVerificationRequestEventContent),
}Expand description
The content that is specific to each message type variant.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Audio(AudioMessageEventContent)
An audio message.
Emote(EmoteMessageEventContent)
An emote message.
File(FileMessageEventContent)
A file message.
Image(ImageMessageEventContent)
An image message.
Location(LocationMessageEventContent)
A location message.
Notice(NoticeMessageEventContent)
A notice message.
ServerNotice(ServerNoticeMessageEventContent)
A server notice message.
Text(TextMessageEventContent)
A text message.
Video(VideoMessageEventContent)
A video message.
VerificationRequest(KeyVerificationRequestEventContent)
A request to initiate a key verification.
Implementations§
Source§impl MessageType
impl MessageType
Sourcepub fn new(
msgtype: &str,
body: String,
data: Map<String, Value>,
) -> Result<MessageType, Error>
pub fn new( msgtype: &str, body: String, data: Map<String, Value>, ) -> Result<MessageType, Error>
Creates a new MessageType.
The msgtype and body are required fields as defined by the m.room.message spec.
Additionally it’s possible to add arbitrary key/value pairs to the event content for custom
events through the data map.
Prefer to use the public variants of MessageType where possible; this constructor is meant
be used for unsupported message types only and does not allow setting arbitrary data for
supported ones.
§Errors
Returns an error if the msgtype is known and serialization of data to the corresponding
MessageType variant fails.
Sourcepub fn text_plain(body: impl Into<String>) -> MessageType
pub fn text_plain(body: impl Into<String>) -> MessageType
A constructor to create a plain text message.
Sourcepub fn text_html(
body: impl Into<String>,
html_body: impl Into<String>,
) -> MessageType
pub fn text_html( body: impl Into<String>, html_body: impl Into<String>, ) -> MessageType
A constructor to create an html message.
Sourcepub fn notice_plain(body: impl Into<String>) -> MessageType
pub fn notice_plain(body: impl Into<String>) -> MessageType
A constructor to create a plain text notice.
Sourcepub fn notice_html(
body: impl Into<String>,
html_body: impl Into<String>,
) -> MessageType
pub fn notice_html( body: impl Into<String>, html_body: impl Into<String>, ) -> MessageType
A constructor to create an html notice.
Sourcepub fn emote_plain(body: impl Into<String>) -> MessageType
pub fn emote_plain(body: impl Into<String>) -> MessageType
A constructor to create a plain text emote.
Sourcepub fn emote_html(
body: impl Into<String>,
html_body: impl Into<String>,
) -> MessageType
pub fn emote_html( body: impl Into<String>, html_body: impl Into<String>, ) -> MessageType
A constructor to create an html emote.
Sourcepub fn data(&self) -> Cow<'_, Map<String, Value>>
pub fn data(&self) -> Cow<'_, Map<String, Value>>
Returns the associated data.
The returned JSON object won’t contain the msgtype and body fields, use
.msgtype() / .body() to access those.
Prefer to use the public variants of MessageType where possible; this method is meant to
be used for custom message types only.
Trait Implementations§
Source§impl Clone for MessageType
impl Clone for MessageType
Source§fn clone(&self) -> MessageType
fn clone(&self) -> MessageType
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MessageType
impl Debug for MessageType
Source§impl<'de> Deserialize<'de> for MessageType
impl<'de> Deserialize<'de> for MessageType
Source§fn deserialize<D>(
deserializer: D,
) -> Result<MessageType, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<MessageType, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Source§impl From<MessageType> for RoomMessageEventContent
impl From<MessageType> for RoomMessageEventContent
Source§fn from(msgtype: MessageType) -> RoomMessageEventContent
fn from(msgtype: MessageType) -> RoomMessageEventContent
Source§impl From<RoomMessageEventContent> for MessageType
impl From<RoomMessageEventContent> for MessageType
Source§fn from(content: RoomMessageEventContent) -> MessageType
fn from(content: RoomMessageEventContent) -> MessageType
Source§impl Serialize for MessageType
impl Serialize for MessageType
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,
Auto Trait Implementations§
impl Freeze for MessageType
impl RefUnwindSafe for MessageType
impl Send for MessageType
impl Sync for MessageType
impl Unpin for MessageType
impl UnsafeUnpin for MessageType
impl UnwindSafe for MessageType
Blanket Implementations§
impl<T> Any for Twhere
T: Any,
impl<T> AsyncTraitDeps for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> CloneAny for T
impl<T> CloneAnySend for T
impl<T> CloneAnySendSync for T
impl<T> CloneAnySync for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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