push_messaging/client/
notification.rs1use builder_pattern::Builder;
2use serde::{Serialize, Deserialize};
3use serde_with::skip_serializing_none;
4
5#[skip_serializing_none]
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Builder)]
7pub struct Notification {
8 #[into]
9 pub title: String,
10 #[into]
11 #[default(None)]
12 pub body: Option<String>,
13 #[into]
14 #[default(flutter_notification_click())]
15 pub click_action: String,
16 #[into]
17 #[default(None)]
18 pub badge: Option<String>,
19 #[into]
20 #[default(None)]
21 pub body_loc_args: Option<Vec<String>>,
22 #[into]
23 #[default(None)]
24 pub body_loc_key: Option<String>,
25
26 #[into]
27 #[default(None)]
28 pub color: Option<String>,
29 #[into]
30 #[default(None)]
31 pub icon: Option<String>,
32 #[into]
33 #[default(None)]
34 pub sound: Option<String>,
35 #[into]
36 #[default(None)]
37 pub tag: Option<String>,
38
39 #[into]
40 #[default(None)]
41 pub title_loc_args: Option<Vec<String>>,
42 #[into]
43 #[default(None)]
44 pub title_loc_key: Option<String>,
45}
46
47fn flutter_notification_click() -> String {
48 "FLUTTER_NOTIFICATION_CLICK".to_string()
49}