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) -> bool;
}