change ref to in and use Unsafe.AsRef #1247
Merged
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.
Proposed Changes
This change avoids having to expose the
ref BasicProperties
parameter we have introduced when switching over to the struct BasicProperties.Ref has 2 downsides,
This PR changes it to be
in
, and in the lowest possible place use Unsafe.AsRef to cheat our way to be able to use ref for the SerializeToFrames method.(Which requires it, as the generic method creates defensive copies of the struct if it is
n
for each method call, as it is not aware that the method itself is readonly due to the interface description not allowing to mark a method as readonly. (This is a dotnet limitation))So with this we get the best for the user and an acceptable workaround within the library.
Undos commit af8c072 of #1096
Types of Changes
Checklist
CONTRIBUTING.md
document