RbxWriteInterleaved Trait #573
Open
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.
The intention here is to improve the code from #545, and provide a counterpart to the RbxReadInterleaved trait defined in #530. This removes the "foreign" impl of functions in core.rs onto ChunkBuilder (defining functions onto a struct from another module), and organizes the
write_interleaved_*functions into a trait. Theinitialize_bytes_withfunction was a cross-module hack, so has been inlined into thewrite_interleaved_bytesimpl. The write test in core_read_write.rs is returned to its former glory because the trait is defined forVec<u8>, and the constants are deduplicated.Note:
-> io::Result<()>result is actually infallible (barring allocation failure panics), but is there to match the surrounding function signatures. I have another commit 5968ec4 if we want to make it infallible, since it only ever operates on a Vec.