<?php
declare(strict_types=1);

namespace PpPhp\Core\Platform\Event\Streaming\Broadcast;

final class StreamBroadcastSerializer
{
    public function encode(StreamBroadcastSnapshot $snapshot): string { return json_encode($snapshot->toArray(), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) ?: '{}'; }
    public function decode(string $json): StreamBroadcastSnapshot { $data = json_decode($json, true); return StreamBroadcastSnapshot::fromArray(is_array($data) ? $data : []); }
}
