Lines 0.00% 0 / 6
Functions and Methods 0.00% 0 / 1
Classes and Traits 0.00% 0 / 1
Name Lines Functions and Methods CRAP Classes and Traits
JsonShapeError 0.00% 0 / 6 0.00% 0 / 1 42 0.00% 0 / 1
 messageTemplate 0.00% 0 / 6 0.00% 0 / 1 42
1<?php
2
3declare(strict_types=1);
4
5namespace Stewart\Support\Exception;
6
7use Stewart\Contracts\Exception\ExceptionReason;
8
9/** @internal */
10enum JsonShapeError: string implements ExceptionReason
11{
12    case WrongType = 'wrong_type';
13    case Missing = 'missing';
14    case UnexpectedValue = 'unexpected_value';
15    case InstantInvalid = 'instant_invalid';
16    case ObjectRefused = 'object_refused';
17
18    public function messageTemplate(): string
19    {
20        return match ($this) {
21            self::WrongType => '"{key}" is {actualType}; expected {expected}.',
22            self::Missing => '"{key}" is missing; expected {expected}.',
23            self::UnexpectedValue => '"{key}" is {value}; expected {expected}.',
24            self::InstantInvalid => '"{key}" is invalid: {cause}',
25            self::ObjectRefused => '"{key}" was refused: {cause}',
26        };
27    }
28}