Lines 100.00% 1 / 1
Functions and Methods 100.00% 1 / 1
Classes and Traits 100.00% 1 / 1
Name Lines Functions and Methods CRAP Classes and Traits
RuntimeSnapshot 100.00% 1 / 1 100.00% 1 / 1 1 100.00% 1 / 1
 __construct 100.00% 1 / 1 100.00% 1 / 1 1
1<?php
2
3declare(strict_types=1);
4
5namespace Stewart\Runtime\Control\Protocol\Status;
6
7use Stewart\Contracts\Time\Instant;
8use Stewart\Contracts\Wire\ListOf;
9use Stewart\Store\StoreHealth;
10
11final readonly class RuntimeSnapshot
12{
13    /**
14     * @param list<WorkerStatus> $workers
15     * @param list<AppStatus> $apps
16     * @param list<RegistrationInfo> $subscriptions
17     */
18    public function __construct(
19        public Instant $takenAt,
20        public DaemonInfo $daemon,
21        public ConnectionState $connection,
22        public BrokerStats $broker,
23        #[ListOf(WorkerStatus::class)]
24        public array $workers,
25        #[ListOf(AppStatus::class)]
26        public array $apps,
27        #[ListOf(RegistrationInfo::class)]
28        public array $subscriptions,
29        public ?StoreHealth $store = null,
30        public ?DeployStatus $deploy = null,
31        public ?ComponentStatus $component = null,
32    ) {}
33}