<?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\BoolParameterInterface; 
use Chevere\Parameter\Interfaces\IntParameterInterface; 
use Chevere\Parameter\Interfaces\StringParameterInterface; 
 
function bool( 
    string $description = '', 
    ?bool $default = null, 
    bool $sensitive = false, 
): BoolParameterInterface { 
    $parameter = new BoolParameter($description, $sensitive); 
    if ($default !== null) { 
        $parameter = $parameter->withDefault($default); 
    } 
 
    return $parameter; 
} 
 
function boolInt( 
    string $description = '', 
    ?int $default = null, 
    bool $sensitive = false, 
): IntParameterInterface { 
    return int( 
        description: $description, 
        default: $default, 
        accept: [0, 1], 
        sensitive: $sensitive 
    ); 
} 
 
function boolString( 
    string $description = '', 
    ?string $default = null, 
    bool $sensitive = false, 
): StringParameterInterface { 
    return string( 
        regex: '/^[01]$/', 
        description: $description, 
        default: $default, 
        sensitive: $sensitive 
    ); 
} 
 
 |