#[cfg(test)] mod tests; use { crate::{ io_uring::{ pending_result::PendingResult, sys::{io_uring_sqe, IORING_OP_READ, IORING_OP_WRITE}, IoUring, IoUringData, IoUringError, IoUringTaskId, Task, TaskResultExt, }, time::Time, utils::on_drop::OnDrop, }, uapi::{c, Fd}, }; impl IoUring { pub async fn read_no_cancel( &self, fd: Fd, offset: usize, buf: &mut [u8], cancel: impl FnOnce(IoUringTaskId), ) -> Result { self.perform_no_cancel( fd, offset, buf.as_mut_ptr(), buf.len(), None, IORING_OP_READ, cancel, ) .await } pub async fn write_no_cancel( &self, fd: Fd, offset: usize, buf: &[u8], timeout: Option