RawDirectMessage

Struct RawDirectMessage 

Source
pub struct RawDirectMessage {
    pub id: u64,
    pub created_at: DateTime<Utc>,
    pub text: String,
    pub entities: DMEntities,
    pub attachment: Option<MediaEntity>,
    pub ctas: Option<Vec<Cta>>,
    pub quick_replies: Option<Vec<QuickReply>>,
    pub quick_reply_response: Option<String>,
    pub sender_id: u64,
    pub source_app_id: Option<String>,
    pub recipient_id: u64,
    /* private fields */
}
Expand description

Minimally-processed form of DirectMessage, prior to changing byte indices or loading source-app information.

The RawDirectMessage type is used in the process of converting from EventCursor or SingleEvent into a DirectMessage. They can be directly loaded from a DMEvent struct, but require a mapping of source-app IDs to convert fully into a DirectMessage. By giving this mapping to the into_dm function, you can convert a RawDirectMessage into the final DirectMessage type.

Another way RawDirectMessage differs from DirectMessage is how its entities are stored. Twitter returns entity information based on codepoint indices, whereas Rust Strings are indexed using byte indices. egg-mode translates these indices for you when returning a processed type, but that translation has not occurred when a RawDirectMessage has been created. The translate_indices function can be used to perform this translation if the RawDirectMessage is being used directly. The into_dm conversion function also performs this translation before returning the final DirectMessage.

Fields§

§id: u64

Numeric ID for this DM.

§created_at: DateTime<Utc>

UTC timestamp from when this DM was created.

§text: String

The text of the DM.

§entities: DMEntities

Link, hashtag, and user mention information parsed out of the DM.

§attachment: Option<MediaEntity>

Media attached to the DM, if present.

§ctas: Option<Vec<Cta>>

A list of “call to action” buttons, if present.

§quick_replies: Option<Vec<QuickReply>>

A list of “quick reply” options, if present.

§quick_reply_response: Option<String>

The metadata associated with the Quick Reply chosen by the sender, if present.

§sender_id: u64

The ID of the user who sent the DM.

§source_app_id: Option<String>

The string ID associated with the app used to send the DM, if sent by the authenticated user.

§recipient_id: u64

The ID of the user who received the DM.

Implementations§

Source§

impl RawDirectMessage

Source

pub fn translate_indices(&mut self)

Translates the codepoint-based indices in this RawDirectMessage’s entities into byte-based ones.

Note that into_dm also performs this conversion, so if you’re ultimately planning to convert this into a DirectMessage, you shouldn’t need to call this function directly. RawDirectMessage tracks whether this translation has occured, so if you need to access the fields before converting, the final conversion won’t double-translate and leave you with invalid indices.

Source

pub fn into_dm(self, apps: &HashMap<String, TweetSource>) -> DirectMessage

Converts this RawDirectMessage into a DirectMessage, using the given source-app mapping.

If the ID given in source_app is not present in the apps mapping, the source-app information is discarded.

This conversion also calls translate_indices before constructing the DirectMessage.

Trait Implementations§

Source§

impl Debug for RawDirectMessage

Source§

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

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

impl<'de> Deserialize<'de> for RawDirectMessage

Source§

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

Deserialize this value from the given Serde deserializer. Read more

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> 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> Same for T

Source§

type Output = T

Should always be Self
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>,