<?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 ArrayAccess;
use Chevere\Parameter\Interfaces\CastInterface;
final class Cast implements CastInterface
{
// @phpstan-ignore-next-line
public function __construct(
private $argument
) {
}
public function int(): int
{
return $this->argument;
}
public function float(): float
{
return $this->argument;
}
public function bool(): bool
{
return $this->argument;
}
public function string(): string
{
return $this->argument;
}
/**
* @infection-ignore-all
* @phpstan-ignore-next-line
*/
public function array(): array
{
return $this->argument instanceof ArrayAccess
? (array) $this->argument
: $this->argument;
}
public function object(): object
{
return $this->argument;
}
public function callable(): callable
{
return $this->argument;
}
// @phpstan-ignore-next-line
public function iterable(): iterable
{
return $this->argument;
}
public function nullInt(): ?int
{
return $this->argument ?? null;
}
public function nullFloat(): ?float
{
return $this->argument ?? null;
}
public function nullBool(): ?bool
{
return $this->argument ?? null;
}
public function nullString(): ?string
{
return $this->argument ?? null;
}
// @phpstan-ignore-next-line
public function nullArray(): ?array
{
return $this->argument ?? null;
}
public function nullObject(): ?object
{
return $this->argument ?? null;
}
public function nullCallable(): ?callable
{
return $this->argument ?? null;
}
// @phpstan-ignore-next-line
public function nullIterable(): ?iterable
{
return $this->argument ?? null;
}
public function mixed(): mixed
{
return $this->argument;
}
}
|