spring_sms/
plugin.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use crate::config::SmsConfig;
use spring::app::AppBuilder;
use spring::config::ConfigRegistry;
use spring::plugin::Plugin;
use spring::async_trait;
use crate::client::SmsClient;

pub struct SmsPlugin;

#[async_trait]
impl Plugin for SmsPlugin {
    async fn build(&self, app: &mut AppBuilder) {
        let config = app.get_config::<SmsConfig>()
            .expect("sms plugin config load failed");
        let sms_client = SmsClient::new(config);
        app.add_component(sms_client);
    }
}