option

Форк
0
/
functions.php 
39 строк · 914.0 Байт
1
<?php
2

3
declare(strict_types=1);
4

5
namespace Upside\Std;
6

7
if (!\function_exists(__NAMESPACE__ . '\some')) {
8
    /**
9
     * @template T of callable|object|array<mixed>|string|float|int|bool
10
     * @phpstan-param T $value
11
     * @phpstan-return Option<T>
12
     */
13
    function Some(callable|object|iterable|string|float|int|bool $value): Option
14
    {
15
        return new Some($value);
16
    }
17
}
18

19
if (!\function_exists(__NAMESPACE__ . '\none')) {
20
    /**
21
     * @phpstan-return Option<null>
22
     */
23
    function None(): Option
24
    {
25
        return new None();
26
    }
27
}
28

29
if (!\function_exists(__NAMESPACE__ . '\from')) {
30
    /**
31
     * @template T of callable|object|array<mixed>|string|float|int|bool|null
32
     * @param T $value
33
     * @phpstan-return (T is null ? Option<null> : Option<T>)
34
     */
35
    function From(mixed $value = null): Option
36
    {
37
        return null === $value ? new None() : new Some($value);
38
    }
39
}
40

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.