openzeppelin_monitor::services::blockwatcher

Trait JobSchedulerTrait

Source
pub trait JobSchedulerTrait:
    Send
    + Sync
    + Sized {
    // Required methods
    fn new<'async_trait>(    ) -> Pin<Box<dyn Future<Output = Result<Self, Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
       where Self: 'async_trait;
    fn add<'life0, 'async_trait>(
        &'life0 self,
        job: Job,
    ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn start<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn shutdown<'life0, 'async_trait>(
        &'life0 mut self,
    ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

Trait for job scheduler

This trait is used to abstract the job scheduler implementation. It is used to allow the block watcher service to be used with different job scheduler implementations.

Required Methods§

Source

fn new<'async_trait>() -> Pin<Box<dyn Future<Output = Result<Self, Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
where Self: 'async_trait,

Source

fn add<'life0, 'async_trait>( &'life0 self, job: Job, ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn start<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source

fn shutdown<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl JobSchedulerTrait for JobScheduler

Implementation of the job scheduler trait for the JobScheduler struct

Source§

fn new<'async_trait>() -> Pin<Box<dyn Future<Output = Result<Self, Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
where Self: 'async_trait,

Source§

fn add<'life0, 'async_trait>( &'life0 self, job: Job, ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn start<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Source§

fn shutdown<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<(), Box<dyn Error + Send + Sync>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Implementors§