toStringKeyMap static method

Map<String, dynamic> toStringKeyMap(
  1. Map? input, {
  2. DiagnosticCaptureMode captureMode = DiagnosticCaptureMode.strict,
  3. DiagnosticResourceLimits resourceLimits = DiagnosticResourceLimits.balanced,
  4. int? maxEntries,
})

Converts a map with arbitrary key types into a Map<String, dynamic>.

The result is always bounded. Strict capture replaces caller-defined objects with stable markers; balanced capture may use guarded toJson() or toString() before applying the same output limits.

Implementation

static Map<String, dynamic> toStringKeyMap(
  Map<dynamic, dynamic>? input, {
  DiagnosticCaptureMode captureMode = DiagnosticCaptureMode.strict,
  DiagnosticResourceLimits resourceLimits = DiagnosticResourceLimits.balanced,
  int? maxEntries,
}) {
  resourceLimits.validate();
  if (input == null) return <String, dynamic>{};
  final bounded = _boundedSnapshot(
    input,
    redactionActive: false,
    preserveTypes: true,
    captureMode: captureMode,
    resourceLimits: resourceLimits,
  );
  final result = bounded is Map<String, Object?>
      ? Map<String, dynamic>.from(bounded)
      : <String, dynamic>{};
  return maxEntries == null ? result : _limitStringMap(result, maxEntries);
}