use crate::container::{OperationalContainer, PendingContainer};
use crate::docker::ContainerState;
use crate::DockerTestError;
pub use async_trait::async_trait;
use dyn_clone::DynClone;
mod message;
mod nowait;
mod status;
pub(crate) use message::wait_for_message;
pub use message::{MessageSource, MessageWait};
pub use nowait::NoWait;
pub use status::{ExitedWait, RunningWait};
#[async_trait]
pub trait WaitFor: Send + Sync + DynClone + std::fmt::Debug {
async fn wait_for_ready(
&self,
container: PendingContainer,
) -> Result<OperationalContainer, DockerTestError>;
fn expected_state(&self) -> ContainerState {
ContainerState::Running
}
}
dyn_clone::clone_trait_object!(WaitFor);