line_bot_messaging_api/entity/message/
image.rs

1use crate::message::LineMessageObject;
2use serde_derive::{Deserialize, Serialize};
3use serde_json::{json, Value};
4
5#[derive(Debug, Default, Deserialize, Serialize, Clone)]
6pub struct LineMessageImage {
7    #[serde(rename = "type")]
8    message_type: String,
9    #[serde(rename = "originalContentUrl")]
10    original_content_url: String,
11    #[serde(rename = "previewImageUrl")]
12    preview_image_url: String,
13}
14
15impl LineMessageImage {
16    pub fn new<T: ToString, U: ToString>(original_content_url: T, preview_image_url: U) -> Self {
17        Self {
18            message_type: "image".to_string(),
19            original_content_url: original_content_url.to_string(),
20            preview_image_url: preview_image_url.to_string(),
21        }
22    }
23}
24
25impl LineMessageObject for LineMessageImage {
26    fn build(&self) -> Value {
27        json!(self)
28    }
29}