decodeCapabilities static method

JackfieldCapabilities decodeCapabilities(
  1. Object? payload
)

Decodes an explicit capability report, rejecting unknown feature names.

Implementation

static JackfieldCapabilities decodeCapabilities(Object? payload) {
  final data = _envelope(
    payload,
    {'platform', 'mechanism', 'features'},
    {'reason'},
  );
  return JackfieldCapabilities(
    platform: _nonemptyString(data, 'platform'),
    mechanism: _enum(data['mechanism'], JackfieldMechanism.values),
    features: Set.unmodifiable(
      _list(data['features']).map((e) => _enum(e, JackfieldFeature.values)),
    ),
    reason: _optionalString(data, 'reason'),
  );
}