#USAGE
val spanned = KTruss().append("text1").append(" ")
.pushSpan(ForegroundColorSpan(color(R.color.red)))
.pushSpan(StyleSpan(Typeface.BOLD))
.append("text2")
.popSpan()
.popSpan()
textView.setText(spanned.build(), TextView.BufferType.SPANNABLE)
Add a popSpan() for each pushSpan() to finish whatever span, remember that is a queue then the first popSpan removes the last pushSpan() added.
##Result text1 text2[red]
Thanks for the straight port.
2 optimisations can be considered