mrsbfh

Matrix-Rust-SDK-Bot-Framework-Helper
git clone git://archive.git.mtrnord.blog/MTRNord/mrsbfh.git
Log | Files | Refs | README

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:
Mmrsbfh/Cargo.toml | 1+
Mmrsbfh/src/lib.rs | 38++++++++++++++++++++++++++++++++++++++
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;