<?php
/*
* This file is part of Chevere.
*
* (c) Rodolfo Berrios <[email protected]>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Chevere\VarDump\Highlights\Traits;
use OutOfRangeException;
use function Chevere\Message\message;
trait AssertKeyTrait
{
abstract public static function palette(): array;
/**
* @infection-ignore-all
* @throws OutOfRangeException
*/
protected function assertKey(string $key): void
{
if (! array_key_exists($key, $this->palette())) {
throw new OutOfRangeException(
(string) message(
'Invalid key `%keyName%`, expecting one of the following palette keys: `%keys%`',
keyName: $key,
keys: implode(', ', array_keys($this->palette())),
)
);
}
}
}
|