package dev.inmo.jsuikit.utils class AttributeBuilder ( val attributeName: String, val parametersBuilder: ParametersBuilder ) { fun build(): Pair = parametersBuilder.build().run { Pair( attributeName, toList().joinToString(";") { "${it.first}${it.second ?.let { ": $it" } ?: ""}" } ) } } inline fun buildAttribute( attributeName: String, skipNullValues: Boolean = true, block: ParametersBuilder.() -> Unit ) = AttributeBuilder( attributeName, ParametersBuilder(skipNullValues) ).apply { parametersBuilder.block() }.build()