pub enum Tapback<'a> {
Loved,
Liked,
Disliked,
Laughed,
Emphasized,
Questioned,
Emoji(Option<&'a str>),
Sticker,
}Expand description
§Tapbacks
Tapbacks look like normal messages in the database. Only the latest tapback state is stored. For example:
- user receives message -> user likes message
- This creates a message and a like message.
- user receives message -> user likes message -> user unlikes message
- This creates a message and a like message.
- The like message is removed when the unlike message arrives.
- Removed rows leave gaps in
ROWID; the row ID is not reused. - The database keeps the latest tapback state, not the full tapback history.
§Technical detail
The index specified by the prefix identifies a parsed message body part;
see Message::components.
bp:GUID prefix for bubble message tapbacks (url previews, apps, etc).p:0/GUID prefix for normal messages (body text, attachments).
If a message has 3 attachments followed by some text:
- 0 is the first image
- 1 is the second image
- 2 is the third image
- 3 is the text of the message
In this example, a Like on p:2/ is a like on the third image.
Variants§
Loved
Heart
Liked
Thumbs up
Disliked
Thumbs down
Laughed
Laughing face
Emphasized
Exclamation points
Questioned
Question marks
Emoji(Option<&'a str>)
Custom emoji tapbacks
Sticker
Custom sticker tapbacks
Trait Implementations§
impl<'a> Eq for Tapback<'a>
impl<'a> StructuralPartialEq for Tapback<'a>
Auto Trait Implementations§
impl<'a> Freeze for Tapback<'a>
impl<'a> RefUnwindSafe for Tapback<'a>
impl<'a> Send for Tapback<'a>
impl<'a> Sync for Tapback<'a>
impl<'a> Unpin for Tapback<'a>
impl<'a> UnsafeUnpin for Tapback<'a>
impl<'a> UnwindSafe for Tapback<'a>
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.