open_lark/card/components/
mod.rs

1use serde::{Deserialize, Serialize};
2
3use crate::card::components::{
4    containers::{
5        collapsible_panel::CollapsiblePanel, column_set::ColumnSetContainer, form::FormContainer,
6        interactive::InteractiveContainer,
7    },
8    content_components::{
9        chart::FeishuCardChart, divider::FeishuCardDivider, image::FeishuCardImage,
10        multi_image_layout::FeishuCardMultiImageLayout, note::FeishuCardNote,
11        plain_text::FeishuCardText, rich_text::FeishuCardMarkdown, user_list::FeishuCardUserList,
12        user_profile::FeishuCardUserProfile,
13    },
14    interactive_components::{
15        button::FeishuCardButton, checker::Checker, date_picker::DatePicker,
16        date_time_picker::DateTimePicker, input::FeishuCardInput,
17        multi_select_person::MultiSelectPerson, multi_select_static::MultiSelectStatic,
18        picker_time::PickerTime, select_person::SelectPerson, select_static::SelectStatic,
19    },
20};
21
22pub mod containers;
23pub mod content_components;
24pub mod interactive_components;
25
26/// 卡片组件枚举
27#[derive(Debug, Serialize, Deserialize)]
28#[serde(untagged)]
29pub enum CardElement {
30    ColumnSet(ColumnSetContainer),
31    FormSet(FormContainer),
32    InteractiveSet(InteractiveContainer),
33    CollapsePanelContainer(CollapsiblePanel),
34    Text(FeishuCardText),
35    Markdown(FeishuCardMarkdown),
36    Image(FeishuCardImage),
37    InputForm(FeishuCardInput),
38    MultiImage(FeishuCardMultiImageLayout),
39    Divider(FeishuCardDivider),
40    UserProfile(FeishuCardUserProfile),
41    UserList(FeishuCardUserList),
42    Chart(FeishuCardChart),
43    Note(FeishuCardNote),
44    Button(FeishuCardButton),
45    SelectStatic(SelectStatic),
46    MultiSelect(MultiSelectStatic),
47    SelectPerson(SelectPerson),
48    MultiSelectPerson(MultiSelectPerson),
49    DatePicker(DatePicker),
50    TimeSelector(PickerTime),
51    DateTimePicker(DateTimePicker),
52    Checker(Checker),
53}