Use rustix abstraction to support I/O Safety unconditionally #135
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
rustix (via io-lifetimes) always provides the I/O Safety types and
traits. On newer Rust it re-exports them from the standard library; on
older Rust it defines its own. We already depend on those types (e.g.
rustix::fd::BorrowedFd
) in our implementation.Use the rustix types so that we can support I/O Safety unconditionally.
Note that on Windows, rustix exports
BorrowedFd
/OwnedFd
types thatare really
BorrowedSocket
/OwnedSocket
. Work around this in theimplementation by renaming them back.