relay
Safe HaskellNone
LanguageGHC2024

Relay.ReceiverHalf

Description

 
Synopsis

Documentation

data ReceiverHalf a Source #

Local state for one session's in-order delivery.

Constructors

ReceiverHalf 

Fields

Instances

Instances details
Eq a => Eq (ReceiverHalf a) Source # 
Instance details

Defined in Relay.ReceiverHalf

Show a => Show (ReceiverHalf a) Source # 
Instance details

Defined in Relay.ReceiverHalf

emptyReceiver :: ReceiverHalf a Source #

Initial receiver state. The first expected sequence number is 1.

receive :: Nat -> a -> ReceiverHalf a -> (ReceiverHalf a, [a]) Source #

Process one arriving frame and return the updated state and any newly deliverable payloads.

  • Duplicate (n < expected): dropped silently, no state change.
  • Out-of-order (n > expected): buffered in pending, no output.
  • In-order (n == expected): delivered, then consecutive entries flushed from pending.