use applyItIf in reliable_channel

This commit is contained in:
Ivan FB 2026-05-29 08:49:53 +02:00
parent ec6a02db7c
commit 41a43174be
No known key found for this signature in database
GPG Key ID: DF0C67A04C543270
2 changed files with 13 additions and 13 deletions

View File

@ -144,21 +144,21 @@ proc onMessageSent(self: ReliableChannel, messagingReqId: RequestId) =
## the matching `InFlight` segment to `Confirmed` and prunes. The
## listener routes every event through here; entries that don't
## belong to this channel simply don't match and are no-ops.
for i in 0 ..< self.pendingMessagingRequests.len:
if self.pendingMessagingRequests[i].segmentSendState == SegmentSendState.InFlight and
self.pendingMessagingRequests[i].messagingReqId == some(messagingReqId):
self.pendingMessagingRequests[i].segmentSendState = SegmentSendState.Confirmed
self.pruneCompletedChannelReqs()
return
self.pendingMessagingRequests.applyItIf(
it.segmentSendState == SegmentSendState.InFlight and
it.messagingReqId == some(messagingReqId)
):
it.segmentSendState = SegmentSendState.Confirmed
self.pruneCompletedChannelReqs()
proc onMessageError(self: ReliableChannel, messagingReqId: RequestId) =
## Symmetric to `onMessageSent` but for `MessageErrorEvent`.
for i in 0 ..< self.pendingMessagingRequests.len:
if self.pendingMessagingRequests[i].segmentSendState == SegmentSendState.InFlight and
self.pendingMessagingRequests[i].messagingReqId == some(messagingReqId):
self.pendingMessagingRequests[i].segmentSendState = SegmentSendState.Failed
self.pruneCompletedChannelReqs()
return
self.pendingMessagingRequests.applyItIf(
it.segmentSendState == SegmentSendState.InFlight and
it.messagingReqId == some(messagingReqId)
):
it.segmentSendState = SegmentSendState.Failed
self.pruneCompletedChannelReqs()
proc onReadyToSend(
self: ReliableChannel, msgs: seq[seq[byte]]

View File

@ -26,7 +26,7 @@ logScope:
# This useful util is missing from sequtils, this extends applyIt with predicate...
template applyItIf*(varSeq, pred, op: untyped) =
for i in low(varSeq) .. high(varSeq):
let it {.inject.} = varSeq[i]
var it {.inject.} = varSeq[i]
if pred:
op
varSeq[i] = it