src/Extensions/Number/NumberLessThanOrEqualExtension.php
<?php
declare(strict_types=1);
namespace NorseBlue\ScalarObjects\Extensions\Number;
use NorseBlue\ExtensibleObjects\Contracts\ExtensionMethod;
use NorseBlue\ScalarObjects\Types\BoolType;
use NorseBlue\ScalarObjects\Types\NumberType;
use function NorseBlue\ScalarObjects\Functions\bool;
final class NumberLessThanOrEqualExtension extends NumberType implements ExtensionMethod
{
/**
* @return callable(int|float|NumberType $number): BoolType
*/
public function __invoke(): callable
{
/**
* Check if the value is less than or equal to the given number.
*
* @param int|float|NumberType $number
*/
return function ($number): BoolType {
return bool($this->value <= self::unwrap($number));
};
}
}