aboutsummaryrefslogtreecommitdiff
path: root/src/process_mail.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/process_mail.rs')
-rw-r--r--src/process_mail.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/process_mail.rs b/src/process_mail.rs
new file mode 100644
index 0000000..5a22ce1
--- /dev/null
+++ b/src/process_mail.rs
@@ -0,0 +1,23 @@
+use anyhow::Result;
+use tokio::sync::mpsc::{Receiver, Sender};
+
+use crate::model::Mail;
+
+struct MailProcessor {
+ rx: Receiver<Mail>,
+ tx: Sender<Mail>,
+}
+
+// TODO: Store first then forward. On complete forward remove from db, otherwise save db with the
+// emails to send to.
+impl MailProcessor {
+ async fn run(&mut self) -> Result<()> {
+ // TODO: Check againts self.rx.is_closed() instead to stop the program before consuming all
+ // of the queue. Store the emails not yet processed and restore the queue upon startup.
+ while let Some(mail) = self.rx.recv().await {
+ todo!()
+ }
+
+ Ok(())
+ }
+}
XMR address: 854DmXNrxULU3ZFJVs4Wc8PFhbq29RhqHhY8W6cdWrtFN3qmooKyyeYPcDzZTNRxphhJ5UzASQfAdEMwSteVqymk28aLhqj