diff options
Diffstat (limited to 'src/process_mail.rs')
| -rw-r--r-- | src/process_mail.rs | 23 |
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(()) + } +} |
