ColorMapping.kt
package de.pflugradts.passbird.adapter.userinterface
import de.pflugradts.passbird.domain.model.transfer.OutputFormatting
import de.pflugradts.passbird.domain.model.transfer.OutputFormatting.DEFAULT
import de.pflugradts.passbird.domain.model.transfer.OutputFormatting.ERROR_MESSAGE
import de.pflugradts.passbird.domain.model.transfer.OutputFormatting.EVENT_HANDLED
import de.pflugradts.passbird.domain.model.transfer.OutputFormatting.HIGHLIGHT
import de.pflugradts.passbird.domain.model.transfer.OutputFormatting.NEST
import de.pflugradts.passbird.domain.model.transfer.OutputFormatting.OPERATION_ABORTED
import de.pflugradts.passbird.domain.model.transfer.OutputFormatting.SPECIAL
private fun mapColorCode(outputFormatting: OutputFormatting) = when (outputFormatting) {
DEFAULT -> 231
SPECIAL -> 220
OPERATION_ABORTED -> 208
ERROR_MESSAGE -> 196
HIGHLIGHT -> 207
NEST -> 39
EVENT_HANDLED -> 118
}
fun beginEscape(outputFormatting: OutputFormatting) = print("\u001B[38;5;${mapColorCode(outputFormatting)}m")
fun endEscape() = print("\u001B[0m")