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 is stored. For example:
- user receives message -> user likes message
- This will create a message and a like message
- user receives message -> user likes message -> user unlikes message
- This will create a message and a like message
- but that like message will get dropped when the unlike message arrives
- When messages drop the ROWIDs become non-sequential: the ID of the dropped message row is not reused
- This means unliking an old message will make it look like the tapback was applied/removed at the time of latest change; the history of tapback statuses is not kept
§Technical detail
The index specified by the prefix maps to the index of the body part given by Message::body()
.
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§
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> 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