- The changes remove unnecessary generic type parameters from the
FileEngine,AsyncFileEngine, and related structures by directly using thePendingRequesttype, simplifying type signatures and improving code clarity. - Error handling is unified through the replacement of
UserDataErrorwithRequestErrorthat specifically carriesPendingRequestinformation, ensuring consistent error propagation with request context. - The
WrappedUserDatastruct is renamed toWrappedRequestand directly embedsPendingRequest, aligning terminology with the virtio block device’s request lifecycle and improving traceability. - Test code is updated to use
PendingRequest::default()instead of placeholder()types, ensuring type consistency and proper request initialization in all scenarios. - Code organization is improved by consolidating imports (e.g., merging
IO_URING_NUM_ENTRIESandPendingRequestimports) and removing redundant type parameters across async/sync I/O implementations.