Coverage for src/galaxy_beep_frame/frame/header_type/message.py: 100%

7 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-08-31 04:18 +0200

1"""Message class.""" 

2 

3from dataclasses import dataclass 

4from typing import TYPE_CHECKING 

5 

6from .base import HeaderType 

7 

8if TYPE_CHECKING: 

9 from .continuation_indicator import ContinuationIndicator 

10 

11 

12@dataclass(frozen=True) 

13class Message(HeaderType): 

14 """Message type.""" 

15 

16 continuation_indicator: ContinuationIndicator 

17 

18 def build(self, size: int) -> bytes: 

19 """Build the header of this Frame.""" 

20 

21 return ( 

22 b"MSG " 

23 + ( 

24 f"{self.state.channel_number} " 

25 f"{self.state.message_number} " 

26 f"{self.continuation_indicator.value} " 

27 f"{self.state.sequence_number} {size}" 

28 ).encode() 

29 )