imessage_database/message_types/
expressives.rs

1/*!
2 [Expressives](https://support.apple.com/en-us/HT206894) are effects that you can select by tapping and holding the send button.
3*/
4
5/// Bubble effects are effects that alter the display of the chat bubble.
6///
7/// Read more [here](https://www.imore.com/how-to-use-bubble-and-screen-effects-imessage-iphone-ipad).
8#[derive(Debug, PartialEq, Eq)]
9pub enum BubbleEffect {
10    /// Creates a slam effect that makes the bubble appear to slam down onto the screen.
11    Slam,
12    /// Creates a loud effect that makes the bubble appear to enlarge temporarily.
13    Loud,
14    /// Creates a gentle effect that makes the bubble appear to shrink temporarily.
15    Gentle,
16    /// Creates an invisible ink effect that hides the message until the recipient swipes over it.
17    InvisibleInk,
18}
19
20/// Screen effects are effects that alter the entire background of the message view.
21///
22/// Read more [here](https://www.imore.com/how-to-use-bubble-and-screen-effects-imessage-iphone-ipad).
23#[derive(Debug, PartialEq, Eq)]
24pub enum ScreenEffect {
25    /// Creates a confetti effect that sprinkles confetti across the screen.
26    Confetti,
27    /// Creates an echo effect that sends multiple copies of the message across the screen.
28    Echo,
29    /// Creates a fireworks effect that displays colorful explosions on the screen.
30    Fireworks,
31    /// Creates a balloons effect that sends balloons floating up from the bottom of the screen.
32    Balloons,
33    /// Creates a heart effect that displays a large heart on the screen.
34    Heart,
35    /// Creates a laser light show effect across the screen.
36    Lasers,
37    /// Creates a shooting star effect that moves across the screen.
38    ShootingStar,
39    /// Creates a sparkle effect that twinkles across the screen.
40    Sparkles,
41    /// Creates a spotlight effect that highlights the message.
42    Spotlight,
43}
44
45/// Expressive effect container.
46///
47/// Read more about expressive messages [here](https://www.imore.com/how-to-use-bubble-and-screen-effects-imessage-iphone-ipad).
48///
49/// Bubble:
50/// - `com.apple.MobileSMS.expressivesend.gentle`
51/// - `com.apple.MobileSMS.expressivesend.impact`
52/// - `com.apple.MobileSMS.expressivesend.invisibleink`
53/// - `com.apple.MobileSMS.expressivesend.loud`
54///
55/// Screen:
56/// - `com.apple.messages.effect.CKConfettiEffect`
57/// - `com.apple.messages.effect.CKEchoEffect`
58/// - `com.apple.messages.effect.CKFireworksEffect`
59/// - `com.apple.messages.effect.CKHappyBirthdayEffect`
60/// - `com.apple.messages.effect.CKHeartEffect`
61/// - `com.apple.messages.effect.CKLasersEffect`
62/// - `com.apple.messages.effect.CKShootingStarEffect`
63/// - `com.apple.messages.effect.CKSparklesEffect`
64/// - `com.apple.messages.effect.CKSpotlightEffect`
65#[derive(Debug, PartialEq, Eq)]
66pub enum Expressive<'a> {
67    /// Effects that use the entire screen
68    Screen(ScreenEffect),
69    /// Effects that display on a single bubble
70    Bubble(BubbleEffect),
71    /// Container for new or unknown messages
72    Unknown(&'a str),
73    /// Message is not an expressive
74    None,
75}