Passed
Push — feature/66 ( 0be2df...3c1553 )
by Max
02:31
created

BaseStorage::value()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 1
c 1
b 0
f 1
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
namespace MaxGoryunov\SavingIterator\Src;
4
5
use Iterator;
6
7
/**
8
 * Base storage implementation.
9
 */
10
final class BaseStorage
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
        if ($source->valid()) {
34
            $this->stored[$source->key()] = $source->current();
35
        }
36
        return $this;
37
    }
38
39
    /**
40
     * {@inheritDoc}
41
     */
42
    public function value(): mixed
43
    {
44
        return current($this->stored);
45
    }
46
47
    /**
48
     * {@inheritDoc}
49
     */
50
    public function key(): mixed
51
    {
52
        return key($this->stored);
53
    }
54
}
55