RejectSerializer::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
ccs 1
cts 1
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace BitWasp\Bitcoin\Networking\Serializer\Message;
6
7
use BitWasp\Bitcoin\Networking\Messages\Reject;
8
use BitWasp\Bitcoin\Serializer\Types;
9
use BitWasp\Buffertools\Buffer;
10
use BitWasp\Buffertools\BufferInterface;
11
use BitWasp\Buffertools\Parser;
12
13
class RejectSerializer
14 3
{
15
    /**
16 3
     * @var \BitWasp\Buffertools\Types\VarString
17 3
     */
18 3
    private $varString;
19 3
20 3
    /**
21 3
     * @var \BitWasp\Buffertools\Types\Uint8
22
     */
23
    private $uint8;
24
25
    public function __construct()
26
    {
27
        $this->varString = Types::varstring();
28 3
        $this->uint8 = Types::uint8();
29
    }
30 3
31 3
    /**
32 3
     * @param Reject $reject
33 3
     * @return BufferInterface
34 3
     */
35 2
    public function serialize(Reject $reject): BufferInterface
36
    {
37
        return new Buffer(sprintf(
38
            "%s%s%s%s",
39
            $this->varString->write($reject->getMessage()),
40
            $this->uint8->write($reject->getCode()),
41
            $this->varString->write($reject->getReason()),
42 3
            $this->varString->write($reject->getData())
43
        ));
44 3
    }
45
46 3
    /**
47 2
     * @param Parser $parser
48 2
     * @return Reject
49 2
     */
50
    public function fromParser(Parser $parser): Reject
51 2
    {
52
        return new Reject(
53
            $this->varString->read($parser),
54
            (int) $this->uint8->read($parser),
55
            $this->varString->read($parser),
56
            $this->varString->read($parser)
57
        );
58 3
    }
59
60 3
    /**
61
     * @param BufferInterface $data
62
     * @return Reject
63
     */
64
    public function parse(BufferInterface $data): Reject
65
    {
66
        return $this->fromParser(new Parser($data));
67
    }
68
}
69