86 lines
1.5 KiB
PHP
86 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* Copyright 2018 Kacper Donat
|
|
*
|
|
* @author Kacper "Kadet" Donat <kacper@kadet.net>
|
|
*
|
|
* Full license available in separate LICENSE file
|
|
*/
|
|
|
|
namespace Kadet\Functional\Predicates;
|
|
|
|
use Kadet\Functional\Predicate;
|
|
use function Kadet\Functional\predicate;
|
|
|
|
/**
|
|
* @param $expected
|
|
*
|
|
* @return \Kadet\Functional\Predicate
|
|
*/
|
|
function equals($expected): Predicate
|
|
{
|
|
return predicate(function ($value) use ($expected) {
|
|
return $expected == $value;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param $expected
|
|
*
|
|
* @return \Kadet\Functional\Predicate
|
|
*/
|
|
function same($expected): Predicate
|
|
{
|
|
return predicate(function ($value) use ($expected) {
|
|
return $value === $expected;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param $expected
|
|
*
|
|
* @return \Kadet\Functional\Predicate
|
|
*/
|
|
function gt($expected): Predicate
|
|
{
|
|
return predicate(function ($value) use ($expected) {
|
|
return $value > $expected;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param $expected
|
|
*
|
|
* @return \Kadet\Functional\Predicate
|
|
*/
|
|
function ge($expected): Predicate
|
|
{
|
|
return predicate(function ($value) use ($expected) {
|
|
return $value >= $expected;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param $expected
|
|
*
|
|
* @return \Kadet\Functional\Predicate
|
|
*/
|
|
function lt($expected): Predicate
|
|
{
|
|
return predicate(function ($value) use ($expected) {
|
|
return $value < $expected;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param $expected
|
|
*
|
|
* @return \Kadet\Functional\Predicate
|
|
*/
|
|
function le($expected): Predicate
|
|
{
|
|
return predicate(function ($value) use ($expected) {
|
|
return $value <= $expected;
|
|
});
|
|
}
|