/
Clues.scala
40 lines (36 loc) · 923 Bytes
/
Clues.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package munit
import munit.diff.console.Printers
import munit.diff.NextPrintable
class Clues(val values: List[Clue[_]]) extends NextPrintable {
override def print(
out: StringBuilder,
indent: Int,
continue: (Any, Int) => Unit
): Unit = {
val nextIndent = indent + Printers.indentStep
Printers.printApply(
"Clues",
values.iterator,
out,
indent,
nextIndent,
open = " {",
close = "}",
comma = ""
) { clue =>
if (clue.source.nonEmpty) {
out.append(clue.source)
}
if (clue.valueType.nonEmpty) {
out.append(": ").append(clue.valueType)
}
out.append(" = ")
continue(clue.value, nextIndent)
}
}
override def toString(): String = Printers.print(this)
}
object Clues {
def empty: Clues = new Clues(List())
def fromValue[T](value: T): Clues = new Clues(List(Clue.fromValue(value)))
}