aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/actions/terminal_print.rs
diff options
context:
space:
mode:
authorLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2024-04-21 16:04:38 +0100
committerLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2024-04-21 16:04:38 +0100
commit1ab6ecba6f509b7b76865d65c77ecebc51efd2d3 (patch)
treea9b92e15769d483560d5799569b14c985b9c3ea5 /src/actions/terminal_print.rs
downloadsentrum-1ab6ecba6f509b7b76865d65c77ecebc51efd2d3.tar.gz
sentrum-1ab6ecba6f509b7b76865d65c77ecebc51efd2d3.tar.bz2
sentrum-1ab6ecba6f509b7b76865d65c77ecebc51efd2d3.zip
Initial commitv0.1.0
Diffstat (limited to 'src/actions/terminal_print.rs')
-rw-r--r--src/actions/terminal_print.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/actions/terminal_print.rs b/src/actions/terminal_print.rs
new file mode 100644
index 0000000..02536c7
--- /dev/null
+++ b/src/actions/terminal_print.rs
@@ -0,0 +1,28 @@
+use super::Action;
+use crate::message::MessageConfig;
+use crate::message::MessageParams;
+use anyhow::Result;
+use async_trait::async_trait;
+
+#[derive(Debug)]
+pub struct TerminalPrintAction<'a> {
+ message_config: &'a MessageConfig,
+}
+
+impl<'a> TerminalPrintAction<'a> {
+ pub fn new(message_config: &'a MessageConfig) -> Self {
+ Self { message_config }
+ }
+}
+
+#[async_trait]
+impl Action<'_> for TerminalPrintAction<'_> {
+ async fn run(&self, params: Option<&MessageParams<'_, '_>>) -> Result<()> {
+ println!(
+ "{}\n{}\n",
+ self.message_config.subject(params)?,
+ self.message_config.body(params)?
+ );
+ Ok(())
+ }
+}