Add chop
function for chopping iso
Strings and Arrays
#2337
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.
For context, my main use case for this functionality is efficient buffer manipulations (i.e. minimal or no copying). I had hoped to be able to accomplish this without modifying
stdlib
but the pointer manipulations required are only possible inbuiltin
.NOTE: This functionality is not safe until the bugs related to
_alloc
forString
andArray
trimming are fixed by #2336.This commit adds a
chop
function to both String and Arraythat works on an
iso
and chops it in two with the left halfbeing a new
iso
String/Array reusing the same pointerand the right half being a
trim_in_place
version of the originalString/Array. Both are returned as
iso
and mutable and do notshare any memory. The operation does not allocate a new pointer
nor copy elements allowing for efficiency.