Test Failed
Push — feature/66 ( 3c1553...165ce9 )
by Max
09:45
created

BaseStorage   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 7
c 1
b 0
f 1
dl 0
loc 51
rs 10
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 8 1
A key() 0 3 1
A added() 0 4 1
A next() 0 3 1
A rewind() 0 3 1
A value() 0 3 1
1
<?php
2
3
namespace MaxGoryunov\SavingIterator\Src;
4
5
use Iterator;
6
7
/**
8
 * Base storage implementation.
9
 */
10
final class BaseStorage implements Storage
11
{
12
13
    /**
14
     * Ctor.
15
     * 
16
     * @param array $stored
17
     */
18
    public function __construct(
19
        /**
20
         * Stored iterator values.
21
         * 
22
         * @var array
23
         */
24
        private array $stored = []
25
    ) {
26
    }
27
28
    /**
29
     * {@inheritDoc}
30
     */
31
    public function added(Iterator $source): static
32
    {
33
        $this->stored[$source->key()] = $source->current();
34
        return $this;
35
    }
36
37
    /**
38
     * {@inheritDoc}
39
     */
40
    public function value(): mixed
41
    {
42
        return current($this->stored);
43
    }
44
45
    /**
46
     * {@inheritDoc}
47
     */
48
    public function key(): mixed
49
    {
50
        return key($this->stored);
51
    }
52
53
    public function rewind(): static
54
    {
55
        return $this;
56
    }
57
58
    public function next(): static
59
    {
60
        return $this;
61
    }
62
}
63