toString method

  1. @override
String toString()
override

Returns a formatted error message describing the parsing issue.

Includes colored output for terminals that support ANSI codes.

Implementation

@override
String toString() {
  final buffer = StringBuffer();
  // Use colors only if NOT in test
  final red = _isTest ? '' : _red;
  final yellow = _isTest ? '' : _yellow;
  final cyan = _isTest ? '' : _cyan;
  final reset = _isTest ? '' : _reset;

  buffer.writeln("$red⚠ JSON Parsing Error$reset");
  buffer.writeln("${cyan}Model:$reset $modelName");

  if (index != null) buffer.writeln("${cyan}Index:$reset $index");
  if (fieldName != null) buffer.writeln("${cyan}Field:$reset $fieldName");
  if (expectedType != null) buffer.writeln("${cyan}Expected:$reset $expectedType");
  if (receivedValue != null) {
    buffer.writeln("${yellow}Received Type:$reset ${receivedValue.runtimeType}");
    buffer.writeln("${yellow}Value:$reset $receivedValue");
  }

  return buffer.toString();
}