HostCapabilityProfile constructor

HostCapabilityProfile({
  1. required String name,
  2. required Map<HostCapability, CapabilityState> states,
  3. Map<HostCapability, CapabilityFloor> floors = const {},
})

Builds and validates a profile.

states must declare EVERY HostCapability; floors may be partial — missing floors derive from the corresponding state.

Implementation

factory HostCapabilityProfile({
  required String name,
  required Map<HostCapability, CapabilityState> states,
  Map<HostCapability, CapabilityFloor> floors = const {},
}) {
  _requireComplete(name, states);
  final resolvedFloors = {
    for (final c in HostCapability.values)
      c: floors[c] ?? CapabilityFloor.fromState(states[c]!),
  };
  _validate(name: name, states: states, floors: resolvedFloors);
  return HostCapabilityProfile._(
    name,
    Map.unmodifiable(states),
    Map.unmodifiable(resolvedFloors),
  );
}