-
Notifications
You must be signed in to change notification settings - Fork 295
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Suggestion: BufMut::advance_mut
should make cnt > self.remaining_mut()
unsound
#760
Comments
BufMut::advance_mut
should not require cnt
to be in boundsBufMut::advance_mut
should make cnt > self.remaining_mut()
unsound
I'm not convinced this is possible due to the semver hack. Bytes v1 will re-export |
I agree it's impossible but I also agree that an already |
Could we change the docs to say something along the lines of:
|
That would be a nice way to transition into it becoming unsound at some point (with breaking change). |
The current documentation for
BufMut::advance_mut
suggests that the implementation should handle cases wherecnt > self.remaining_mut()
. However, since this function is already unsafe and requires the caller to ensure that the declared length has been properly initialized, it seems contradictory to also suggest the implementation handle out-of-bounds lengths.This requirement was added in #70, and did not exist before. It looks like an artifact of the pre-
MaybeUninit
days.The suggestion should instead be to add
debug_assert!
to catch obviously unsound implementations while avoiding unnecessary runtime overhead in release builds.The text was updated successfully, but these errors were encountered: