Introduce ByteString based on an existing ByteArray #428
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.
I implemented this using an existing class and an
extendable
boolean as I didn't want to break binary compatibility with existing usage of theByteStringBuilder
constructor, but it is possible to rewrite using an abstract class (should be ever-so-slightly-faster).My use case: I have a game engine, and I'd like to avoid copying data around more than necessary. Usually, this would be a micro-optimization; But re-meshing everything every frame adds up quickly. This way, I can pass my existing vertex buffer, and an offset (that I can record using the buffer's own
size
), and simply override the changed vertex's data.I did not add a
buildByteString
function as this is a lower-level use-case and should be treated as such; I expect most to not need the resultingByteString
at all, and simply useapply
instead.I would add a
DelicateIoApi
annotation, but I didn't seem to find one.