Add RawPadding trait to block-padding for padding blocks of arbitrary size #870
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.
Closes #860
The existing
Paddingtrait is automatically implemented usingraw_padandraw_unpadfromRawPadding.Because all implementations are inlined, code generation for users of
Paddingis the same as before. I checked this by defining some functions (see below) to monomorphize thePaddingtrait for an instance ofPaddingand comparing the generated assembly (using e.g.cargo asm block_padding::concrete_pad --build-type release) before and after this change. I observed no differences.I'm not attached to
RawPaddingas a name, something likeArbitraryPaddingcould also work. I thinkPaddingandBlockPaddingfor (what is currently called)RawPaddingandPaddingwould be better, but it wouldn't be worth the breaking interface change.