Skip to content
This repository has been archived by the owner on Feb 5, 2021. It is now read-only.

Revert "rust: Add Buffer type" #118

Merged
merged 1 commit into from
Dec 8, 2017
Merged

Revert "rust: Add Buffer type" #118

merged 1 commit into from
Dec 8, 2017

Conversation

tarcieri
Copy link
Contributor

@tarcieri tarcieri commented Dec 8, 2017

This reverts commit 901690b.

The Buffer type was a neat idea, but it has a few drawbacks I didn't notice initially which I think present significant complications.

The main one is that it relies on its contents being

T: AsRef<[u8]> + AsMut<[u8]>

Unfortunately until const generics land, these traits are only defined for up to 32-byte arrays! This makes the in-place API unusable for fixed-size arrays larger than 32-bytes.

We can revisit this when const generics land.

The other problem is it requires an owned type for any data passed to it, which may not always be the case. This seems like a larger dealbreaker.

The slice-based API is ugly but certainly the most flexible.

@tarcieri tarcieri added the rust label Dec 8, 2017
This reverts commit 901690b.

The Buffer type was a neat idea, but it has a few drawbacks I didn't
notice initially which I think present significant complications.

The main one is that it relies on its contents being

`T: AsRef<[u8]> + AsMut<[u8]>`

Unfortunately until const generics land, these traits are only defined
for up to 32-byte arrays! This makes the in-place API unusable for
larger fixed-size arrays.

We can revisit this when const generics land.

The other problem is it requires an owned type for any data passed to
it, which may not always be the case. This seems like a larger
dealbreaker.

The slice-based API is ugly but certainly the most flexible.
@tarcieri tarcieri merged commit b79fe11 into master Dec 8, 2017
@tarcieri tarcieri deleted the rust/revert-buffer-type branch December 8, 2017 20:10
This was referenced Jan 6, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant