Issues (19)

src/Interfaces/SequenceInterface.php (1 issue)

Labels
Severity
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Smoren\Sequence\Interfaces;
6
7
use ArrayAccess;
8
use Countable;
9
use IteratorAggregate;
10
use Smoren\Sequence\Exceptions\OutOfRangeException;
11
use Smoren\Sequence\Exceptions\ReadOnlyException;
12
13
/**
14
 * Iterable sequence.
15
 *
16
 * @template T
17
 * @extends ArrayAccess<int, T>
18
 * @extends IteratorAggregate<int, T>
19
 */
20
interface SequenceInterface extends ArrayAccess, Countable, IteratorAggregate
21
{
22
    /**
23
     * Returns true if sequence is infinite.
24
     *
25
     * @return bool
26
     */
27
    public function isInfinite(): bool;
28
29
    /**
30
     * Returns sequence value by index.
31
     *
32
     * @param int $index
33
     *
34
     * @return T
0 ignored issues
show
The type Smoren\Sequence\Interfaces\T was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
35
     */
36
    public function getValueByIndex(int $index);
37
38
    /**
39
     * Returns start value of the sequence.
40
     *
41
     * @return T
42
     */
43
    public function getStartValue();
44
45
    /**
46
     * Returns next value of the sequence by its previous value.
47
     *
48
     * @param T $previousValue
49
     *
50
     * @return T
51
     */
52
    public function getNextValue($previousValue);
53
54
    /**
55
     * {@inheritDoc}
56
     *
57
     * @param int $offset
58
     *
59
     * @return bool
60
     */
61
    public function offsetExists($offset): bool;
62
63
    /**
64
     * {@inheritDoc}
65
     *
66
     * @param int $offset
67
     *
68
     * @return T
69
     *
70
     * @throws OutOfRangeException
71
     */
72
    #[\ReturnTypeWillChange]
73
    public function offsetGet($offset);
74
75
    /**
76
     * {@inheritDoc}
77
     *
78
     * @param int|null $offset
79
     * @param T $value
80
     *
81
     * @return void
82
     *
83
     * @throws ReadOnlyException anyway
84
     */
85
    public function offsetSet($offset, $value): void;
86
87
    /**
88
     * {@inheritDoc}
89
     *
90
     * @param int $offset
91
     *
92
     * @return void
93
     *
94
     * @throws ReadOnlyException anyway
95
     */
96
    public function offsetUnset($offset): void;
97
98
    /**
99
     * {@inheritDoc}
100
     */
101
    public function count(): int;
102
103
    /**
104
     * {@inheritDoc}
105
     *
106
     * @return SequenceIteratorInterface<T>
107
     */
108
    public function getIterator(): SequenceIteratorInterface;
109
}
110