#[cfg(feature = "cache")]
pub trait CacheFromState<S>: Send + Sync + 'static {
fn cache_from_state(state: &S) -> crate::cache::Cache;
}
#[cfg(feature = "cache")]
impl CacheFromState<crate::cache::Cache> for crate::cache::Cache {
fn cache_from_state(state: &crate::cache::Cache) -> crate::cache::Cache {
state.clone()
}
}
#[cfg(feature = "storage-fs")]
pub trait StorageFromState<S>: Send + Sync + 'static {
fn storage_from_state(state: &S) -> crate::storage::Storage;
}
#[cfg(feature = "storage-fs")]
impl StorageFromState<crate::storage::Storage> for crate::storage::Storage {
fn storage_from_state(state: &crate::storage::Storage) -> crate::storage::Storage {
state.clone()
}
}
#[cfg(feature = "mail")]
pub trait MailFromState<S>: Send + Sync + 'static {
fn mail_from_state(state: &S) -> crate::mail::Mail;
}
#[cfg(feature = "mail")]
impl MailFromState<crate::mail::Mail> for crate::mail::Mail {
fn mail_from_state(state: &crate::mail::Mail) -> crate::mail::Mail {
state.clone()
}
}
#[cfg(feature = "jobs")]
pub trait JobsFromState<S>: Send + Sync + 'static {
fn jobs_from_state(state: &S) -> crate::jobs::Jobs;
}
#[cfg(feature = "jobs")]
impl JobsFromState<crate::jobs::Jobs> for crate::jobs::Jobs {
fn jobs_from_state(state: &crate::jobs::Jobs) -> crate::jobs::Jobs {
state.clone()
}
}
#[cfg(feature = "events")]
pub trait EventsFromState<S>: Send + Sync + 'static {
fn events_from_state(state: &S) -> crate::events::Dispatcher;
}
#[cfg(feature = "events")]
impl EventsFromState<crate::events::Dispatcher> for crate::events::Dispatcher {
fn events_from_state(state: &crate::events::Dispatcher) -> crate::events::Dispatcher {
state.clone()
}
}