toString method
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();
}