slack_messaging/
macros.rs1#[macro_export]
25macro_rules! plain_text {
26 ($fmt:expr) => {
27 $crate::composition_objects::Text::builder()
28 .plain_text(format!($fmt))
29 .build()
30 };
31 ($fmt:expr, $($arg:tt)+) => {
32 $crate::composition_objects::Text::builder()
33 .plain_text(format!($fmt, $($arg)+))
34 .build()
35 };
36}
37
38#[macro_export]
62macro_rules! mrkdwn {
63 ($fmt:expr) => {
64 $crate::composition_objects::Text::builder()
65 .mrkdwn(format!($fmt))
66 .build()
67 };
68 ($fmt:expr, $($arg:tt)+) => {
69 $crate::composition_objects::Text::builder()
70 .mrkdwn(format!($fmt, $($arg)+))
71 .build()
72 };
73}
74
75#[cfg(test)]
76mod tests {
77 use crate::composition_objects::Text;
78
79 #[test]
80 fn it_works_macro_plain_text_given_expression() {
81 let text = plain_text!("Hello, Tanaka!");
82 let expected = Text::builder().plain_text("Hello, Tanaka!").build();
83 assert_eq!(text, expected);
84 }
85
86 #[test]
87 fn it_works_macro_plain_text_given_expression_and_tokens() {
88 let name = "Tanaka";
89 let text = plain_text!("Hello, {name}!");
90 let expected = Text::builder().plain_text("Hello, Tanaka!").build();
91 assert_eq!(text, expected);
92 }
93
94 #[test]
95 fn it_works_macro_mrkdwn_given_expression() {
96 let text = mrkdwn!("Hello, Tanaka!");
97 let expected = Text::builder().mrkdwn("Hello, Tanaka!").build();
98 assert_eq!(text, expected);
99 }
100
101 #[test]
102 fn it_works_macro_mrkdwn_given_expression_and_tokens() {
103 let name = "Tanaka";
104 let text = mrkdwn!("Hello, {name}!");
105 let expected = Text::builder().mrkdwn("Hello, Tanaka!").build();
106 assert_eq!(text, expected);
107 }
108}