botx_api/api/models/
button.rs1use serde::{Serialize, Deserialize};
2
3use super::{handler::Handler, align::Align};
4
5#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
7#[builder(setter(into, prefix = "with", strip_option))]
8pub struct Button {
9 pub command: String,
11
12 pub label: String,
14
15 #[serde(skip_serializing_if = "Option::is_none")]
17 #[builder(default)]
18 pub data: Option<serde_json::Value>,
19
20 #[builder(default)]
22 pub opts: ButtonOptions,
23}
24
25#[derive(Debug, Serialize, Deserialize, Default, Clone, Builder)]
27#[builder(setter(into, prefix = "with", strip_option))]
28pub struct ButtonOptions {
29 #[serde(skip_serializing_if = "Option::is_none")]
31 #[builder(default)]
32 pub silent: Option<bool>,
33
34 #[serde(skip_serializing_if = "Option::is_none")]
36 #[builder(default)]
37 pub h_size: Option<u32>,
38
39 #[serde(skip_serializing_if = "Option::is_none")]
41 #[builder(default)]
42 pub show_alert: Option<bool>,
43
44 #[serde(skip_serializing_if = "Option::is_none")]
46 #[builder(default)]
47 pub alert_text: Option<String>,
48
49 #[serde(skip_serializing_if = "Option::is_none")]
51 #[builder(default)]
52 pub handler: Option<Handler>,
53
54 #[serde(skip_serializing_if = "Option::is_none")]
56 #[builder(default)]
57 pub font_color: Option<String>, #[serde(skip_serializing_if = "Option::is_none")]
61 #[builder(default)]
62 pub background_color: Option<String>, #[serde(skip_serializing_if = "Option::is_none")]
66 #[builder(default)]
67 pub align: Option<Align>,
68}