Review this generated property delegate before it is used for account input.
Trim input while keeping every field and AccountForm instance independent, reject blank values, and never log an API token.
kotlin
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
object TrimmedText : ReadWriteProperty<Any?, String> {
private var value = ""
override fun getValue(thisRef: Any?, property: KProperty<*>): String = value
override fun setValue(
thisRef: Any?,
property: KProperty<*>,
newValue: String,
) {
println("${property.name}: '$value' -> '${newValue.trim()}'")
value = newValue.trim()
}
}
class AccountForm {
var displayName: String by TrimmedText
var apiToken: String by TrimmedText
}
generated code is illustrative, not from any one model