format method
String
format({
- String rangeSeparator = '–',
- String nonConsecutiveSeparator = ', ',
- StringFormatter<
E> ? formatter,
Formats this compressed range list into a readable string representation.
The function expects the given E type to have a proper implementation
of operator ==.
Example:
[
(from: Note.c, to: Note.e.flat),
(from: Note.g.sharp, to: Note.b),
].format() == 'C–E♭, G♯–B'
Implementation
String format({
String rangeSeparator = '–',
String nonConsecutiveSeparator = ', ',
StringFormatter<E>? formatter,
}) => map(
(range) => [range.from, if (range.from != range.to) range.to]
.map(formatter?.format ?? (element) => element.toString())
.join(rangeSeparator),
).join(nonConsecutiveSeparator);