2 integration: custom serializer which does not write decimals but native floats only
9 class NoDecimals extends ion\Serializer\Serializer {
10 public function serialize(mixed $data, \ion\Writer|array|null $writer = null): mixed {
11 return parent::serialize($data, new class extends \ion\Writer\Buffer\Writer {
12 public function writeDecimal(\ion\Decimal|string $value): void {
13 if ($value instanceof \ion\Decimal) {
14 $value = (string)$value;
16 $this->writeFloat((float) $value);
23 $data = [1.123, new ion\Decimal("1.123"), 123, new ion\Decimal(123)];
24 echo ion\serialize($data), "\n";
25 echo ion\serialize($data, new NoDecimals), "\n";
30 \[1\.12\d+e\+0,1\.123,123,123d0\]
31 \[(1\.12\d+e\+0),\1,123,123e\+0\]