Coverage for kv4p/messages/window_update.py: 75%
12 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-13 13:27 +0000
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-13 13:27 +0000
1"""Flow-control window update."""
3from __future__ import annotations
5import struct
6from dataclasses import dataclass
8_WINDOW_UPDATE = struct.Struct("<I")
11@dataclass(frozen=True, slots=True)
12class WindowUpdate:
13 """Flow-control window update."""
15 size: int
17 @classmethod
18 def from_bytes(cls, payload: bytes) -> WindowUpdate:
19 """Parse WindowUpdate."""
20 if len(payload) < _WINDOW_UPDATE.size:
21 raise ValueError(f"WindowUpdate payload too short: {len(payload)}")
22 return cls(_WINDOW_UPDATE.unpack(payload[: _WINDOW_UPDATE.size])[0])