use crate::error::Result;
#[cfg(not(feature = "std"))]
use alloc::boxed::Box;
pub trait Stream: Send + Sync {
fn synchronize(&self) -> Result<()>;
fn is_idle(&self) -> bool;
fn record(&self) -> Result<Box<dyn Event>>;
}
pub trait Event: Send + Sync {
fn wait(&self) -> Result<()>;
fn is_complete(&self) -> bool;
fn elapsed_ms(&self, start: &dyn Event) -> Result<f32>;
}