phplrt/phplrt

View on GitHub
libs/parser/src/Middleware/Pipeline/ClosureHandler.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

declare(strict_types=1);

namespace Phplrt\Parser\Middleware\Pipeline;

use Phplrt\Parser\Context;
use Phplrt\Parser\Middleware\HandlerInterface;

/**
 * @template TReturn of mixed
 */
final class ClosureHandler implements HandlerInterface
{
    /**
     * @param \Closure(Context):TReturn $handler
     */
    public function __construct(
        private readonly \Closure $handler,
    ) {}

    /**
     * @return TReturn
     */
    public function handle(Context $context): mixed
    {
        return ($this->handler)($context);
    }
}