Lines 0.00% 0 / 12
Methods 0.00% 0 / 1
Classes 0.00% 0 / 1
Name Lines Methods CRAP
 messageTemplate 0.00% 0 / 12 0.00% 0 / 1 156
9enum TransportError: string implements ExceptionReason
10{
11    case Closed = 'closed';
12    case SendFailed = 'send_failed';
13    case Unencodable = 'unencodable';
14    case PeerDisconnected = 'peer_disconnected';
15    case ReceiveFailed = 'receive_failed';
16    case UnexpectedMessage = 'unexpected_message';
17    case UndecodableFrame = 'undecodable_frame';
18    case ProtocolMismatch = 'protocol_mismatch';
19    case MessageTypeMissing = 'message_type_missing';
20    case MessageTagMissing = 'message_tag_missing';
21    case MessageTagDuplicated = 'message_tag_duplicated';
22
23    public function messageTemplate(): string
24    {
25        return match ($this) {
26            self::Closed => 'Transport is closed.',
27            self::SendFailed => 'Failed to send to peer: {cause}',
28            self::Unencodable => 'Could not encode {messageClass} for IPC: {cause}',
29            self::PeerDisconnected => 'Peer disconnected: {cause}',
30            self::ReceiveFailed => 'Failed to receive from peer: {cause}',
31            self::UnexpectedMessage => 'Expected a JSON frame, got {actualType}.',
32            self::UndecodableFrame => 'Could not decode "{messageType}" frame: {reason}',
33            self::ProtocolMismatch => 'Broker speaks IPC protocol {actual}, this worker {expected}.',
34            self::MessageTypeMissing => 'No IPC message type is registered for {messageClass}.',
35            self::MessageTagMissing => 'IPC message {messageClass} has no #[IpcMessage] attribute.',
36            self::MessageTagDuplicated => 'IPC tag "{tag}" is declared by both {firstClass} and {secondClass}.',
37        };
38    }
39}