functional-php/src/Utils/FixedFunction.php
2018-08-23 21:43:49 +02:00

42 lines
723 B
PHP

<?php
/**
* Copyright 2018 Kacper Donat
*
* @author Kacper "Kadet" Donat <kacper@kadet.net>
*
* Full license available in separate LICENSE file
*/
namespace Kadet\Functional\Utils;
use function Kadet\Functional\apply;
use Kadet\Functional\Decorator;
class FixedFunction implements Decorator
{
/**
* @var callable
*/
private $fixed;
/**
* FixedFunction constructor.
*
* @param callable $fixed
*/
public function __construct(callable $fixed)
{
$this->fixed = $fixed;
}
public function __invoke(...$args)
{
return apply($this->fixed, $this, ...$args);
}
public function getDecorated()
{
return $this->fixed;
}
}