line_bot_messaging_api/entity/webhook/
source.rs1use serde_derive::{Deserialize, Serialize};
2
3#[derive(Debug, Deserialize, Serialize, Clone)]
4#[serde(untagged)]
5pub enum LineWebhookSource {
6 User(LineWebhookSourceUser),
7 Group(LineWebhookSourceGroup),
8 Room(LineWebhookSourceRoom),
9}
10
11#[derive(Debug, Deserialize, Serialize, Clone)]
12pub struct LineWebhookSourceUser {
13 #[serde(rename = "type")]
14 pub source_type: String,
15 #[serde(rename = "userId")]
16 pub user_id: String,
17}
18
19#[derive(Debug, Deserialize, Serialize, Clone)]
20pub struct LineWebhookSourceGroup {
21 #[serde(rename = "type")]
22 pub source_type: String,
23 #[serde(rename = "groupId")]
24 pub group_id: String,
25 #[serde(rename = "userId")]
26 pub user_id: Option<String>,
27}
28
29#[derive(Debug, Deserialize, Serialize, Clone)]
30pub struct LineWebhookSourceRoom {
31 #[serde(rename = "type")]
32 pub source_type: String,
33 #[serde(rename = "roomId")]
34 pub room_id: String,
35 #[serde(rename = "userId")]
36 pub user_id: Option<String>,
37}