#[async_trait::async_trait]
pub trait AsyncBlockBackend: Send + Sync {
async fn read(&self, sector: u64, buf: &mut [u8]) -> std::io::Result<usize>;
async fn write(&self, sector: u64, buf: &[u8]) -> std::io::Result<usize>;
async fn flush(&self) -> std::io::Result<()>;
fn capacity(&self) -> u64;
fn is_read_only(&self) -> bool;
}