feat(event): WriteContext::write_ack_frame
records events AckRangeSent
#1646
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.
Resolved issues:
resolves: #1416
Description of changes:
Specialize
write_frame
for ack frame:write_ack_frame
.Call-outs:
Advantage: essentially zero-cost:
write_ack_frame
only specializes forFrame::Ack
anyway.Alternatives considered:
get_publisher(&self) -> &mut Publisher
(requires exposing generic Publisher throughWriteContext
)on_ack_range_sent
toWriteContext
acceptingevent::builder::AckRangeSent
/AckRanges
(It looks slightly ad-hoc, and a lot of data-passing, may as well combine intowrite_ack_frame
).Testing:
Not sure how to generate appropriate tests -
MockContext
forWriteContext
currently doesn't accept a publisher.Results
Here is some sample output running the
event-framework
example with theasync-client
example.As you can see,
AckRangeSent
is recorded afterFrameSent {.. frame: Ack {..}, ..}
is recorded.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.