firebase_rs_sdk/messaging/
types.rs

1use std::collections::HashMap;
2use std::sync::Arc;
3
4/// Payload displayed to the user when a notification is shown.
5#[derive(Clone, Debug, Default, PartialEq, Eq)]
6pub struct NotificationPayload {
7    pub title: Option<String>,
8    pub body: Option<String>,
9    pub image: Option<String>,
10    pub icon: Option<String>,
11}
12
13/// Additional FCM options for a payload.
14#[derive(Clone, Debug, Default, PartialEq, Eq)]
15pub struct FcmOptions {
16    pub link: Option<String>,
17    pub analytics_label: Option<String>,
18}
19
20/// Message data delivered by Firebase Cloud Messaging.
21#[derive(Clone, Debug, Default, PartialEq, Eq)]
22pub struct MessagePayload {
23    pub notification: Option<NotificationPayload>,
24    pub data: Option<HashMap<String, String>>,
25    pub fcm_options: Option<FcmOptions>,
26    pub from: Option<String>,
27    pub collapse_key: Option<String>,
28    pub message_id: Option<String>,
29}
30
31pub type MessageHandler = Arc<dyn Fn(MessagePayload) + Send + Sync + 'static>;
32
33pub type Unsubscribe = Box<dyn FnOnce() + Send + 'static>;