* * For the full copyright and license information, please view the LICENSE file * that was distributed with this source code. */ declare(strict_types=1); namespace Respect\Validation\Rules; use Psr\Http\Message\StreamInterface; use SplFileInfo; use function is_string; use function is_writable; /** * Validates if the given input is writable file. * * @author Danilo Correa * @author Henrique Moody */ final class Writable extends AbstractRule { /** * {@inheritDoc} */ public function validate($input): bool { if ($input instanceof SplFileInfo) { return $input->isWritable(); } if ($input instanceof StreamInterface) { return $input->isWritable(); } return is_string($input) && is_writable($input); } }