<?php 
 
/* 
 * This file is part of Chevere. 
 * 
 * (c) Rodolfo Berrios <rodolfo@chevere.org> 
 * 
 * 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\Xr; 
 
use Chevere\Message\Message; 
use Chevere\Throwable\Exceptions\LogicException; 
use Chevere\Xr\Interfaces\XrInterface; 
 
/** 
 * @codeCoverageIgnore 
 */ 
final class XrInstance 
{ 
    private static XrInterface $instance; 
 
    public function __construct(XrInterface $xr) 
    { 
        self::$instance = $xr; 
    } 
 
    public static function get(): XrInterface 
    { 
        if (!isset(self::$instance)) { 
            throw new LogicException( 
                new Message('No xr instance present') 
            ); 
        } 
 
        return self::$instance; 
    } 
} 
 
 |