Skip to content
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

bytes checkin #133

Merged
merged 3 commits into from
Feb 19, 2018
Merged

bytes checkin #133

merged 3 commits into from
Feb 19, 2018

Conversation

frankmcsherry
Copy link
Member

This PR, not to be merged without some consideration, adds a new helper crate bytes meant to resemble the crates.io bytes crate, but with substantially less complexity, at least one additional feature (recovering resources) and perhaps a great deal less safety (totally unclear to me).

There are two modules, rc and arc, which sequester a byte allocation behind an Rc or Arc, respectively. The type returns access to the underlying allocation only when it is able to destructure the reference using try_unwrap, which intends to ensure that there are no outstanding instances referencing the allocation (other than the one being consumed).

The intended benefit here is that we can slice up some bytes like split_at_mut and hand out independent mutable regions as long as they are disjoint, which the interface means to ensure.

I think this PR will sit here for a while until I figure out how one increases the confidence in unsafe code, other than pointing Rust people at it and seeing whether they nod or sigh.

@frankmcsherry frankmcsherry mentioned this pull request Feb 18, 2018
@frankmcsherry frankmcsherry merged commit 4d09ddb into master Feb 19, 2018
@frankmcsherry frankmcsherry mentioned this pull request Feb 22, 2018
@frankmcsherry frankmcsherry deleted the bytes branch September 16, 2018 07:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant