<?php 
 
/* 
 * This file is part of Chevere. 
 * 
 * (c) Rodolfo Berrios <[email protected]> 
 * 
 * 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\Parameter; 
 
use Chevere\Parameter\Interfaces\FloatParameterInterface; 
use Chevere\Parameter\Interfaces\IntParameterInterface; 
 
/** 
 * @param float[] $accept 
 * @param float[] $reject 
 */ 
function float( 
    string $description = '', 
    ?float $default = null, 
    ?float $min = null, 
    ?float $max = null, 
    array $accept = [], 
    array $reject = [], 
    bool $sensitive = false, 
): FloatParameterInterface { 
    $parameter = new FloatParameter($description, $sensitive); 
    if ($accept !== []) { 
        $parameter = $parameter->withAccept(...$accept); 
    } 
    if ($reject !== []) { 
        $parameter = $parameter->withReject(...$reject); 
    } 
    if ($min !== null) { 
        $parameter = $parameter->withMin($min); 
    } 
    if ($max !== null) { 
        $parameter = $parameter->withMax($max); 
    } 
    if ($default !== null) { 
        $parameter = $parameter->withDefault($default); 
    } 
 
    return $parameter; 
} 
 
/** 
 * @param int[] $accept 
 * @param int[] $reject 
 */ 
function int( 
    string $description = '', 
    ?int $default = null, 
    ?int $min = null, 
    ?int $max = null, 
    array $accept = [], 
    array $reject = [], 
    bool $sensitive = false, 
): IntParameterInterface { 
    $parameter = new IntParameter($description, $sensitive); 
    if ($accept !== []) { 
        $parameter = $parameter->withAccept(...$accept); 
    } 
    if ($reject !== []) { 
        $parameter = $parameter->withReject(...$reject); 
    } 
    if ($min !== null) { 
        $parameter = $parameter->withMin($min); 
    } 
    if ($max !== null) { 
        $parameter = $parameter->withMax($max); 
    } 
    if ($default !== null) { 
        $parameter = $parameter->withDefault($default); 
    } 
 
    return $parameter; 
} 
 
 |