use std::fmt::Debug;
use std::future::Future;
use std::pin::Pin;
use self::restartable::Restartable;
use crate::{BackoffPolicy, RestartPolicy};
pub mod backoff;
pub mod backoff_policy;
pub mod restartable;
pub mod watcher;
pub trait Worker: Debug + Send + Restartable {
fn init(&self) -> Pin<Box<dyn Future<Output = ()> + Send + 'static>>;
fn restart_policy(&self) -> RestartPolicy {
RestartPolicy::default()
}
fn backoff_policy(&self) -> BackoffPolicy {
BackoffPolicy::default()
}
}