Plugin

Trait Plugin 

Source
pub trait Plugin: Send + Sync {
    // Required methods
    fn name(&self) -> &'static str;
    fn setup<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
        &'life0 self,
        config: &'life1 Arc<RwLock<ClientConfig>>,
        opts: &'life2 ClientOpts,
        command_rx: &'life3 mut Receiver<Message>,
        result_tx: &'life4 Sender<Message>,
    ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait,
             'life3: 'async_trait,
             'life4: 'async_trait;
    fn publish<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
        &'life0 self,
        endpoint: &'life1 ServerEndpoint,
        config: &'life2 Arc<RwLock<ClientConfig>>,
        opts: &'life3 ClientOpts,
        result_tx: &'life4 Sender<Message>,
    ) -> Pin<Box<dyn Future<Output = Result<SubProcess>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait,
             'life3: 'async_trait,
             'life4: 'async_trait;
}

Required Methods§

Source

fn name(&self) -> &'static str

Name of the plugin

Source

fn setup<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, config: &'life1 Arc<RwLock<ClientConfig>>, opts: &'life2 ClientOpts, command_rx: &'life3 mut Receiver<Message>, result_tx: &'life4 Sender<Message>, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

Setup the plugin environment

Source

fn publish<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, endpoint: &'life1 ServerEndpoint, config: &'life2 Arc<RwLock<ClientConfig>>, opts: &'life3 ClientOpts, result_tx: &'life4 Sender<Message>, ) -> Pin<Box<dyn Future<Output = Result<SubProcess>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

Publish a service using this plugin

Implementors§