diff options
-rw-r--r-- | crates/core/tedge_api/examples/heartbeat.rs | 7 | ||||
-rw-r--r-- | crates/core/tedge_api/src/plugins.rs | 5 |
2 files changed, 7 insertions, 5 deletions
diff --git a/crates/core/tedge_api/examples/heartbeat.rs b/crates/core/tedge_api/examples/heartbeat.rs index 80f8b10e..7776e488 100644 --- a/crates/core/tedge_api/examples/heartbeat.rs +++ b/crates/core/tedge_api/examples/heartbeat.rs @@ -8,19 +8,20 @@ use tedge_api::{ struct HeartbeatServiceBuilder; +#[async_trait] impl PluginBuilder for HeartbeatServiceBuilder { fn name(&self) -> &'static str { todo!() } - fn verify_configuration( + async fn verify_configuration( &self, _config: &PluginConfiguration, ) -> Result<(), tedge_api::errors::PluginError> { Ok(()) } - fn instantiate( + async fn instantiate( &self, config: PluginConfiguration, tedge_comms: tedge_api::plugins::Comms, @@ -89,7 +90,7 @@ async fn main() { ) .unwrap(); - let mut heartbeat = hsb.instantiate(config, comms).unwrap(); + let mut heartbeat = hsb.instantiate(config, comms).await.unwrap(); heartbeat.setup().await.unwrap(); diff --git a/crates/core/tedge_api/src/plugins.rs b/crates/core/tedge_api/src/plugins.rs index cb1710be..78cb3356 100644 --- a/crates/core/tedge_api/src/plugins.rs +++ b/crates/core/tedge_api/src/plugins.rs @@ -36,18 +36,19 @@ impl Comms { pub type PluginConfiguration = toml::Spanned<toml::value::Value>; /// A plugin builder for a given plugin +#[async_trait] pub trait PluginBuilder: Sync + Send + 'static { /// The name of the plugins this creates, this should be unique and will prevent startup otherwise fn name(&self) -> &'static str; /// This may be called anytime to verify whether a plugin could be instantiated with the /// passed configuration. - fn verify_configuration(&self, config: &PluginConfiguration) -> Result<(), PluginError>; + async fn verify_configuration(&self, config: &PluginConfiguration) -> Result<(), PluginError>; /// Instantiate a new instance of this plugin using the given configuration /// /// This _must not_ block - fn instantiate( + async fn instantiate( &self, config: PluginConfiguration, tedge_comms: Comms, |