diff --git a/src/lib.rs b/src/lib.rs index 215555f..d0313c2 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -69,7 +69,7 @@ impl Server { // Initialize plugins for plugin in self.plugins.lock().unwrap().iter_mut() { - plugin.init(); + plugin.init(self); } // Start server diff --git a/src/plugin.rs b/src/plugin.rs index e3d8827..7dd2435 100644 --- a/src/plugin.rs +++ b/src/plugin.rs @@ -1,3 +1,7 @@ +use std::sync::Arc; + +use crate::Server; + pub trait Plugin { - fn init(&mut self); + fn init(&mut self, server: &Arc); } diff --git a/test-plugin/src/lib.rs b/test-plugin/src/lib.rs index 7f74b48..8b53dcf 100644 --- a/test-plugin/src/lib.rs +++ b/test-plugin/src/lib.rs @@ -1,4 +1,5 @@ -use voxa_server::{export_plugin, logger, plugin::Plugin}; +use std::sync::Arc; +use voxa_server::{Server, export_plugin, logger, plugin::Plugin}; logger! { const LOGGER "My Plugin" @@ -8,7 +9,7 @@ logger! { pub struct MyPlugin; impl Plugin for MyPlugin { - fn init(&mut self) { + fn init(&mut self, _server: &Arc) { LOGGER.info("MyPlugin initialized!"); } }