yamlkt icon indicating copy to clipboard operation
yamlkt copied to clipboard

Problems handling :: for string without quote

Open MarcinMoskala opened this issue 1 year ago • 0 comments

This code demonstrates the problem:

@Serializable
class HeaderConfig(
    val deckName: String,
    val articleFileName: String? = null,
    val packageDestination: String? = null,
)
val headerContent = """
    deckName: Aktywne::Zasady
    articleFileName: this/is/some/file.md
""".trimIndent()

suspend fun main() = coroutineScope<Unit> {
    val yaml by lazy {
        Yaml {
            encodeDefaultValues = false
            stringSerialization = YamlBuilder.StringSerialization.DOUBLE_QUOTATION
        }
    }
    val headerConfig = yaml.decodeFromString(HeaderConfig.serializer(), headerContent)
    println(headerConfig.deckName) // Aktywne
    println(headerConfig.articleFileName) // null
}

The result is:

Aktywne
null

Where it should be:

Aktywne::Zasady
this/is/some/file.md

MarcinMoskala avatar Jan 31 '24 07:01 MarcinMoskala