toString method
A string representation of this object.
Some classes have a default textual representation,
often paired with a static parse
function (like int.parse).
These classes will provide the textual representation as
their string representation.
Other classes have no meaningful textual representation
that a program will care about.
Such classes will typically override toString
to provide
useful information when inspecting the object,
mainly for debugging or logging.
Implementation
@override
String toString({bool returnRaw = true}) {
if (raw case final raw? when returnRaw) {
return raw;
}
final buf = StringBuffer();
for (final comp in comps) {
if (comp is Wildcard) {
buf.writeCharCode(Character.star);
}
for (final char in comp.literal.runes) {
final escaped = switch (char) {
Character.nullChar => '\\0'.codeUnits,
Character.tab => '\\t'.codeUnits,
Character.lineFeed => '\\n'.codeUnits,
Character.carriageReturn => '\\r'.codeUnits,
Character.doubleQuote => '\\"'.codeUnits,
Character.singleQuote => "\\'".codeUnits,
Character.star => '\\*'.codeUnits,
< 0x20 ||
0x7f ||
0x96 ||
> 0xffff =>
'\\u{${char.toRadixString(16)}}'.codeUnits,
_ => [char],
};
escaped.forEach(buf.writeCharCode);
}
}
return buf.toString();
}