aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
blob: 8980b31f17fc2da86464dbe3823e7747745e65a6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
mod agenda;
mod discord;
mod reminder;
mod slack;

use crate::agenda::AgendaPoint;
use crate::reminder::ReminderType;
use futures::join;
use tokio::sync::{mpsc, watch};

#[tokio::main]
async fn main() {
    let (from_discord, to_slack) = mpsc::unbounded_channel::<AgendaPoint>();
    let (from_slack, to_discord) = mpsc::unbounded_channel::<AgendaPoint>();

    let (reminder_sender, reminder_receiver) = watch::channel(ReminderType::Void);

    join!(
        reminder::handle(reminder_sender),
        discord::handle(from_discord, to_discord, reminder_receiver.clone()),
        slack::handle(from_slack, to_slack, reminder_receiver),
    );
}