line_bot_sdk_messaging_api/models/
template.rs1use crate::models;
13use serde::{Deserialize, Serialize};
14
15#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum Template {
20 ButtonsTemplate(Box<models::ButtonsTemplate>),
21 ConfirmTemplate(Box<models::ConfirmTemplate>),
22 CarouselTemplate(Box<models::CarouselTemplate>),
23 ImageCarouselTemplate(Box<models::ImageCarouselTemplate>),
24}
25
26impl Default for Template {
27 fn default() -> Self {
28 Self::ButtonsTemplate(Box::new(Default::default()))
29 }
30}
31
32impl From<models::ButtonsTemplate> for Template {
34 fn from(value: models::ButtonsTemplate) -> Self {
35 Template::ButtonsTemplate(Box::new(value))
36 }
37}
38
39impl From<models::ConfirmTemplate> for Template {
40 fn from(value: models::ConfirmTemplate) -> Self {
41 Template::ConfirmTemplate(Box::new(value))
42 }
43}
44
45impl From<models::CarouselTemplate> for Template {
46 fn from(value: models::CarouselTemplate) -> Self {
47 Template::CarouselTemplate(Box::new(value))
48 }
49}
50
51impl From<models::ImageCarouselTemplate> for Template {
52 fn from(value: models::ImageCarouselTemplate) -> Self {
53 Template::ImageCarouselTemplate(Box::new(value))
54 }
55}