use crate::device::*;
pub trait SyncCommand {
type Ret;
type Err;
fn execute<D: SyncDevice + ?Sized>(&self, dev: &mut D) -> Result<Self::Ret, Self::Err>;
}
#[cfg(feature = "async")]
#[cfg_attr(docsrs, doc(cfg(feature = "async")))]
pub trait AsyncCommand {
type Ret;
type Err;
async fn execute_async<D: AsyncDevice + ?Sized>(
&self,
dev: &mut D,
) -> Result<Self::Ret, Self::Err>;
}