Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
11.11% covered (danger)
11.11%
1 / 9
33.33% covered (danger)
33.33%
1 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
Number
11.11% covered (danger)
11.11%
1 / 9
33.33% covered (danger)
33.33%
1 / 3
15.24
0.00% covered (danger)
0.00%
0 / 1
 value
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 structure
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 shape
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3declare(strict_types=1);
4
5namespace Cosray\Field;
6
7use Celemas\Sire\Shape;
8use Cosray\Validation\Shapes;
9use Cosray\Value\Number as NumberValue;
10
11class Number extends Field
12{
13    public function value(): NumberValue
14    {
15        return new NumberValue($this->owner, $this, $this->valueContext);
16    }
17
18    public function structure(mixed $value = null): array
19    {
20        return $this->getSimpleStructure('number', $value);
21    }
22
23    public function shape(): Shape
24    {
25        $shape = Shapes::create();
26        $this->addType($shape);
27
28        $value = $shape->add('value', $this->zxxShape('float', $this->validators));
29
30        if (!$this->isRequired()) {
31            $value->optional()->nullable();
32        }
33
34        $this->addMeta($shape);
35
36        return $shape;
37    }
38}