Is your feature request related to a problem? Please describe.
Vectored IO for files is neither implemented directly nor through AsyncWriteRent and AsyncReadRent traits.
Describe the solution you'd like
[ ] Add a new vectored IO op struct with offset or manipulate current op struct definition.
[ ] Implement vectored IO with optional offset argument for File struct.
[ ] Implement AsyncWriteRent and AsyncReadRent traits for File struct.
Describe alternatives you've considered
It is possible to emulate vectored write through multiple single writes, but that missed the point of using io_uring.
Additional context
io_uring provides an option to specify offset for vectored IO but monoio's WriteVec and ReadVec op structs don't support it. We could add a new vectored IO op struct with offset or manipulate current op struct definition.
For tcp and unix sockets, vectored IO is implemented through AsyncWriteRent and AsyncReadRent.
Not implementing AsyncWriteRent and AsyncReadRent also causes BufWriter and BufReader to be unusable for files. See #133.
Is your feature request related to a problem? Please describe. Vectored IO for files is neither implemented directly nor through
AsyncWriteRent
andAsyncReadRent
traits.Describe the solution you'd like
File
struct.AsyncWriteRent
andAsyncReadRent
traits forFile
struct.Describe alternatives you've considered It is possible to emulate vectored write through multiple single writes, but that missed the point of using io_uring.
Additional context io_uring provides an option to specify offset for vectored IO but monoio's
WriteVec
andReadVec
op structs don't support it. We could add a new vectored IO op struct with offset or manipulate current op struct definition.For tcp and unix sockets, vectored IO is implemented through
AsyncWriteRent
andAsyncReadRent
.Not implementing
AsyncWriteRent
andAsyncReadRent
also causesBufWriter
andBufReader
to be unusable for files. See #133.