| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Relay.ReceiverHalf
Description
Synopsis
- data ReceiverHalf a = ReceiverHalf {}
- emptyReceiver :: ReceiverHalf a
- receive :: Nat -> a -> ReceiverHalf a -> (ReceiverHalf a, [a])
Documentation
data ReceiverHalf a Source #
Local state for one session's in-order delivery.
Instances
| Eq a => Eq (ReceiverHalf a) Source # | |
Defined in Relay.ReceiverHalf Methods (==) :: ReceiverHalf a -> ReceiverHalf a -> Bool # (/=) :: ReceiverHalf a -> ReceiverHalf a -> Bool # | |
| Show a => Show (ReceiverHalf a) Source # | |
Defined in Relay.ReceiverHalf Methods showsPrec :: Int -> ReceiverHalf a -> ShowS # show :: ReceiverHalf a -> String # showList :: [ReceiverHalf a] -> ShowS # | |
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 inpending, no output. - In-order (
n == expected): delivered, then consecutive entries flushed frompending.