<?php declare(strict_types=1); namespace Endroid\QrCode\Writer; use Endroid\QrCode\Bacon\MatrixFactory; use Endroid\QrCode\Label\LabelInterface; use Endroid\QrCode\Logo\LogoInterface; use Endroid\QrCode\QrCodeInterface; use Endroid\QrCode\Writer\Result\DebugResult; use Endroid\QrCode\Writer\Result\ResultInterface; final readonly class DebugWriter implements WriterInterface, ValidatingWriterInterface { public function write(QrCodeInterface $qrCode, ?LogoInterface $logo = null, ?LabelInterface $label = null, array $options = []): ResultInterface { $matrixFactory = new MatrixFactory(); $matrix = $matrixFactory->create($qrCode); return new DebugResult($matrix, $qrCode, $logo, $label, $options); } public function validateResult(ResultInterface $result, string $expectedData): void { if (!$result instanceof DebugResult) { throw new \Exception('Unable to write logo: instance of DebugResult expected'); } $result->setValidateResult(true); } }