Passed
Push — main ( 51d364...839c28 )
by Breno
01:40
created

with()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 2
nop 2
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
4
namespace BrenoRoosevelt;
5
6
/**
7
 * @param mixed $payload
8
 * @param callable ...$stages
9
 * @return mixed
10
 */
11
function pipe($payload, callable ...$stages)
12
{
13
    foreach ($stages as $stage) {
14
        $payload = $stage($payload);
15
    }
16
17
    return $payload;
18
}
19
20
/**
21
 * @param $value
22
 * @param callable ...$jobs
23
 * @return mixed returns the value
24
 */
25
function with(&$value, callable ...$jobs)
26
{
27
    foreach ($jobs as $job) {
28
        $job($value);
29
    }
30
31
    return $value;
32
}
33