| 
<?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())),
 )
 );
 }
 }
 }
 
 |