Skip to main content

line_bot_sdk_messaging_api/models/
template.rs

1/*
2 * LINE Messaging API
3 *
4 * This document describes LINE Messaging API.
5 *
6 * The version of the OpenAPI document: 0.0.1
7 *
8 * Generated by: https://openapi-generator.tech
9 * Post-processed by: post-process-enums-v2.js
10 */
11
12use crate::models;
13use serde::{Deserialize, Serialize};
14
15/// Template enum using newtype pattern (wraps structs in Box)
16/// This is automatically generated from discriminated schemas
17#[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
32// Conversion methods from struct types to enum variants
33impl 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}