summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
new file mode 100644
index 0000000..3b11a48
--- /dev/null
+++ b/src/lib.rs
@@ -0,0 +1,27 @@
+mod labwatch;
+
+use serenity::{
+ all::{ChannelId, Context, EventHandler, Ready},
+ async_trait,
+};
+use std::{path::PathBuf, sync::Arc};
+
+pub struct Handler(Arc<HandlerConfig>);
+
+impl From<HandlerConfig> for Handler {
+ fn from(config: HandlerConfig) -> Handler {
+ Handler(Arc::new(config))
+ }
+}
+
+pub struct HandlerConfig {
+ pub db_dir: PathBuf,
+ pub labwatch_channel_id: ChannelId,
+}
+
+#[async_trait]
+impl EventHandler for Handler {
+ async fn ready(&self, ctx: Context, _data_about_bot: Ready) {
+ tokio::spawn(labwatch::start(self.0.clone(), ctx));
+ }
+}