pub trait CommandDevice {
type CommandEncoder;
type SyncPoint: Clone + Debug;
// Required methods
fn create_command_encoder(
&self,
desc: CommandEncoderDesc<'_>,
) -> Self::CommandEncoder;
fn destroy_command_encoder(&self, encoder: &mut Self::CommandEncoder);
fn submit(&self, encoder: &mut Self::CommandEncoder) -> Self::SyncPoint;
fn wait_for(
&self,
sp: &Self::SyncPoint,
timeout_ms: u32,
) -> Result<bool, DeviceError>;
}