Skip to main content

flow_bot/message/
mod.rs

1use segments::TextSegment;
2
3pub mod message_ext;
4pub mod segments;
5
6pub type Message = Vec<segments::Segment>;
7
8pub trait IntoMessage {
9    fn into_message(self) -> Message;
10}
11
12impl IntoMessage for String {
13    fn into_message(self) -> Message {
14        vec![segments::Segment::Text(TextSegment { text: self })]
15    }
16}
17
18impl IntoMessage for &str {
19    fn into_message(self) -> Message {
20        vec![segments::Segment::Text(TextSegment {
21            text: self.to_string(),
22        })]
23    }
24}
25
26impl IntoMessage for &String {
27    fn into_message(self) -> Message {
28        vec![segments::Segment::Text(TextSegment { text: self.clone() })]
29    }
30}
31
32impl<T> IntoMessage for Vec<T>
33where
34    T: Into<segments::Segment>,
35{
36    fn into_message(self) -> Message {
37        self.into_iter().map(|s| s.into()).collect()
38    }
39}