commit 344f7a052108793703cf970712a1553d7390a9f0
parent 507471070811013217b2c687c7da6ffedb713481
Author: MTRNord <mtrnord1@gmail.com>
Date: Tue, 9 Feb 2021 15:17:02 +0100
feat: add helper function on sender to remove more boilerplate when creating a notice
Diffstat:
2 files changed, 39 insertions(+), 0 deletions(-)
diff --git a/mrsbfh/Cargo.toml b/mrsbfh/Cargo.toml
@@ -28,6 +28,7 @@ serde_json = "1"
pulldown-cmark = "0.8.0" # For generating the help text
regex = "1.4.3"
+async-trait = "0.1.41"
[features]
default = ["macros"]
diff --git a/mrsbfh/src/lib.rs b/mrsbfh/src/lib.rs
@@ -29,6 +29,44 @@ pub mod utils;
pub type Sender = tokio::sync::mpsc::Sender<matrix_sdk::events::AnyMessageEventContent>;
+#[async_trait::async_trait]
+pub trait MatrixMessageExt {
+ async fn send_notice(
+ &mut self,
+ body: String,
+ formatted_body: Option<String>,
+ ) -> Result<(), tokio::sync::mpsc::error::SendError<matrix_sdk::events::AnyMessageEventContent>>;
+}
+
+#[async_trait::async_trait]
+impl MatrixMessageExt for Sender {
+ async fn send_notice(
+ &mut self,
+ body: String,
+ formatted_body: Option<String>,
+ ) -> Result<(), tokio::sync::mpsc::error::SendError<matrix_sdk::events::AnyMessageEventContent>>
+ {
+ match formatted_body {
+ Some(formatted_body) => {
+ let content = matrix_sdk::events::AnyMessageEventContent::RoomMessage(
+ matrix_sdk::events::room::message::MessageEventContent::notice_html(
+ body,
+ formatted_body,
+ ),
+ );
+
+ self.send(content).await
+ }
+ None => {
+ let content = matrix_sdk::events::AnyMessageEventContent::RoomMessage(
+ matrix_sdk::events::room::message::MessageEventContent::notice_plain(body),
+ );
+ self.send(content).await
+ }
+ }
+ }
+}
+
pub use const_concat;
pub use pulldown_cmark;
pub use serde_yaml;