use async_trait::async_trait;
use peace_resources::states::{
StateDiffs, StatesCleaned, StatesCleanedDry, StatesCurrent, StatesDesired, StatesEnsured,
StatesEnsuredDry,
};
#[async_trait(?Send)]
pub trait OutputWrite<E> {
async fn write_states_current(&mut self, states_current: &StatesCurrent) -> Result<(), E>
where
E: std::error::Error;
async fn write_states_desired(&mut self, states_desired: &StatesDesired) -> Result<(), E>
where
E: std::error::Error;
async fn write_state_diffs(&mut self, state_diffs: &StateDiffs) -> Result<(), E>
where
E: std::error::Error;
async fn write_states_ensured_dry(
&mut self,
states_ensured_dry: &StatesEnsuredDry,
) -> Result<(), E>
where
E: std::error::Error;
async fn write_states_ensured(&mut self, states_ensured: &StatesEnsured) -> Result<(), E>
where
E: std::error::Error;
async fn write_states_cleaned_dry(
&mut self,
states_cleaned_dry: &StatesCleanedDry,
) -> Result<(), E>
where
E: std::error::Error;
async fn write_states_cleaned(&mut self, states_cleaned: &StatesCleaned) -> Result<(), E>
where
E: std::error::Error;
async fn write_err(&mut self, error: &E) -> Result<(), E>
where
E: std::error::Error;
}