Struct UserNoticeMessage

Source
pub struct UserNoticeMessage {
Show 14 fields pub channel_login: String, pub channel_id: String, pub sender: TwitchUserBasics, pub message_text: Option<String>, pub system_message: String, pub event: UserNoticeEvent, pub event_id: String, pub badge_info: Vec<Badge>, pub badges: Vec<Badge>, pub emotes: Vec<Emote>, pub name_color: Option<RGBColor>, pub message_id: String, pub server_timestamp: DateTime<Utc>, pub source: IRCMessage,
}
Expand description

A Twitch USERNOTICE message.

The USERNOTICE message represents a wide variety of “rich events” in chat, e.g. sub events, resubs, gifted subscriptions, incoming raids, etc.

See UserNoticeEvent for more details on all the different events.

Note that even though UserNoticeMessage has a message_id, you can NOT reply to these messages or delete them. For this reason, ReplyToMessage is not implemented for UserNoticeMessage.

Fields§

§channel_login: String

Login name of the channel that this message was sent to.

§channel_id: String

ID of the channel that this message was sent to.

§sender: TwitchUserBasics

The user that sent/triggered this message. Depending on the event (see below), this user may or may not have any actual meaning (for some type of events, this user is a dummy user).

Even if this user is not a dummy user, the meaning of what this user did depends on the event that this USERNOTICE message represents. For example, in case of a raid, this user is the user raiding the channel, in case of a sub, it’s the user subscribing, etc…)

§message_text: Option<String>

If present, an optional message the user sent alongside the notification. Not all types of events can have message text.

Currently the only event that can a message is a resub, where this message text is the message the user shared with the streamer alongside the resub message.

§system_message: String

A system message that is always present and represents a user-presentable message of what this event is, for example “FuchsGewand subscribed with Twitch Prime. They’ve subscribed for 12 months, currently on a 9 month streak!”.

This message is always present and always fully pre-formatted by Twitch with this event’s parameters.

§event: UserNoticeEvent

this holds the event-specific data, e.g. for sub, resub, subgift, etc…

§event_id: String

String identifying the type of event (msg-id tag). Can be used to manually parse undocumented types of USERNOTICE messages.

§badge_info: Vec<Badge>

Metadata related to the chat badges in the badges tag.

Currently this is used only for subscriber, to indicate the exact number of months the user has been a subscriber. This number is finer grained than the version number in badges. For example, a user who has been a subscriber for 45 months would have a badge_info value of 45 but might have a badges version number for only 3 years.

§badges: Vec<Badge>

List of badges that should be displayed alongside the message.

§emotes: Vec<Emote>

A list of emotes in this message. Each emote replaces a part of the message_text. These emotes are sorted in the order that they appear in the message.

If message_text is None, this is an empty list and carries no information (since there is no message, and therefore no emotes to display)

§name_color: Option<RGBColor>

If present, specifies the color that the user’s name should be displayed in. A value of None here signifies that the user has not picked any particular color. Implementations differ on how they handle this, on the Twitch website users are assigned a pseudorandom but consistent-per-user color if they have no color specified.

§message_id: String

A string uniquely identifying this message. Can be used with the Twitch API to delete single messages. See also the CLEARMSG message type.

§server_timestamp: DateTime<Utc>

Timestamp of when this message was sent.

§source: IRCMessage

The message that this UserNoticeMessage was parsed from.

Trait Implementations§

Source§

impl Clone for UserNoticeMessage

Source§

fn clone(&self) -> UserNoticeMessage

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

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

Performs copy-assignment from source. Read more
Source§

impl Debug for UserNoticeMessage

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for UserNoticeMessage

Source§

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

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

impl From<UserNoticeMessage> for IRCMessage

Source§

fn from(msg: UserNoticeMessage) -> IRCMessage

Converts to this type from the input type.
Source§

impl PartialEq for UserNoticeMessage

Source§

fn eq(&self, other: &UserNoticeMessage) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for UserNoticeMessage

Source§

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

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

impl TryFrom<IRCMessage> for UserNoticeMessage

Source§

type Error = ServerMessageParseError

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

fn try_from( source: IRCMessage, ) -> Result<UserNoticeMessage, ServerMessageParseError>

Performs the conversion.
Source§

impl Eq for UserNoticeMessage

Source§

impl StructuralPartialEq for UserNoticeMessage

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

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

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

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

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

Source§

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

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

Source§

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

Source§

impl<T> MaybeSendSync for T