context(T)
operator fun <T : Tag> (TagConsumer<*>.() -> Any?).unaryPlus() = with(HtmlLexerTagConsumer(consumer)) { this@unaryPlus() }
-fun (TagConsumer<*>.() -> Any?).toFragment() = buildString {
- val builder = appendHTML()
- with(HtmlLexerTagConsumer(builder)) { this@toFragment() }
- builder.finalize()
-}
+fun (TagConsumer<*>.() -> Any?).toFragment() = StringBuilder()
+ .appendHTML()
+ .also { builder ->
+ with(HtmlLexerTagConsumer(builder)) { this@toFragment() }
+ }
+ .finalize()
+ .toString()
class HtmlLexerTagConsumer private constructor(private val downstream: TagConsumer<*>) : TagConsumer<Unit> {
override fun onTagStart(tag: Tag) {