resolveBooleanFlag method
Abstract methods for actual flag resolution
Implementation
@override
Future<FlagEvaluationResult<bool>> resolveBooleanFlag(
String flagKey,
bool defaultValue, {
Map<String, dynamic>? context,
}) async {
_checkState();
if (!_flags.containsKey(flagKey)) {
return FlagEvaluationResult.error(
flagKey,
defaultValue,
ErrorCode.FLAG_NOT_FOUND,
'Flag "$flagKey" not found',
evaluatorId: name,
);
}
final value = _flags[flagKey];
if (value is! bool) {
return FlagEvaluationResult.error(
flagKey,
defaultValue,
ErrorCode.TYPE_MISMATCH,
'Flag "$flagKey" is not a boolean, got ${value.runtimeType}',
evaluatorId: name,
);
}
return FlagEvaluationResult(
flagKey: flagKey,
value: value,
reason: 'STATIC',
evaluatedAt: DateTime.now(),
evaluatorId: name,
);
}