#![allow(clippy::ptr_as_ptr)]
#![allow(clippy::borrow_as_ptr)]
#![allow(clippy::unnecessary_cast)]
#![allow(clippy::cognitive_complexity)]
#![allow(clippy::map_unwrap_or)]
#![allow(clippy::useless_vec)]
#![allow(clippy::unnecessary_wraps)]
#![allow(clippy::redundant_clone)]
#![allow(clippy::unnecessary_map_or)]
#![allow(clippy::missing_fields_in_debug)]
#![allow(clippy::needless_lifetimes)]
#![allow(clippy::needless_collect)]
#![allow(mismatched_lifetime_syntaxes)]
mod backend;
mod device;
#[cfg(target_os = "linux")]
mod direct_io;
mod mmap;
mod punch;
mod request;
pub use backend::AsyncBlockBackend;
pub use device::VirtioBlock;
#[cfg(target_os = "linux")]
pub use direct_io::DirectIoBackend;
pub use mmap::MmapBackend;
pub use punch::{PUNCH_HOLE_ALIGNMENT, aligned_punch_range, punch_hole, zero_range};
pub use request::{
BlockConfig, BlockRequestHeader, BlockRequestType, BlockStatus, DiscardWriteZeroesRange,
WRITE_ZEROES_FLAG_UNMAP, checked_io_byte_range, parse_range_list,
};