b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / a / home / dev2.destoffenstraat.com / vendor / phpoption / phpoption / src / PhpOption /
Filename/home/a/home/dev2.destoffenstraat.com/vendor/phpoption/phpoption/src/PhpOption/Some.php
Size3.24 kb
Permissionrw-r--r--
Ownerroot : root
Create time21-Aug-2025 12:26
Last modified20-Jul-2024 23:41
Last accessed23-Aug-2025 04:36
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php

/*
* Copyright 2012 Johannes M. Schmitt <schmittjoh@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

namespace PhpOption;

use ArrayIterator;

/**
* @template T
*
* @extends Option<T>
*/
final class Some extends Option
{
/** @var T */
private $value;

/**
* @param T $value
*/
public function __construct($value)
{
$this->value = $value;
}

/**
* @template U
*
* @param U $value
*
* @return Some<U>
*/
public static function create($value): self
{
return new self($value);
}

public function isDefined(): bool
{
return true;
}

public function isEmpty(): bool
{
return false;
}

public function get()
{
return $this->value;
}

public function getOrElse($default)
{
return $this->value;
}

public function getOrCall($callable)
{
return $this->value;
}

public function getOrThrow(\Exception $ex)
{
return $this->value;
}

public function orElse(Option $else)
{
return $this;
}

public function ifDefined($callable)
{
$this->forAll($callable);
}

public function forAll($callable)
{
$callable($this->value);

return $this;
}

public function map($callable)
{
return new self($callable($this->value));
}

public function flatMap($callable)
{
/** @var mixed */
$rs = $callable($this->value);
if (!$rs instanceof Option) {
throw new \RuntimeException('Callables passed to flatMap() must return an Option. Maybe you should use map() instead?');
}

return $rs;
}

public function filter($callable)
{
if (true === $callable($this->value)) {
return $this;
}

return None::create();
}

public function filterNot($callable)
{
if (false === $callable($this->value)) {
return $this;
}

return None::create();
}

public function select($value)
{
if ($this->value === $value) {
return $this;
}

return None::create();
}

public function reject($value)
{
if ($this->value === $value) {
return None::create();
}

return $this;
}

/**
* @return ArrayIterator<int, T>
*/
public function getIterator(): ArrayIterator
{
return new ArrayIterator([$this->value]);
}

public function foldLeft($initialValue, $callable)
{
return $callable($initialValue, $this->value);
}

public function foldRight($initialValue, $callable)
{
return $callable($this->value, $initialValue);
}
}