Reified generics for lists

This commit is contained in:
DBotThePony 2022-09-08 19:53:44 +07:00
parent 0879e5e7a9
commit 404c3dd6d1
Signed by: DBot
GPG Key ID: DCC23B5715498507
3 changed files with 9 additions and 9 deletions

View File

@ -29,7 +29,7 @@ data class MaterialModifier(
.plain(MaterialModifier::health)
.plain(MaterialModifier::harvestLevel)
.plain(MaterialModifier::breaksWithTile)
.list(MaterialModifier::miningSounds, String::class)
.list(MaterialModifier::miningSounds)
.plain(MaterialModifier::miningParticle)
.plain(MaterialModifier::renderTemplate, RenderTemplate.CACHE)
.plain(MaterialModifier::renderParameters)

View File

@ -113,7 +113,7 @@ data class RenderRuleList(
companion object {
val ADAPTER = KConcreteTypeAdapter.Builder(RenderRuleList::class)
.list(RenderRuleList::entries, Entry::class)
.list(RenderRuleList::entries)
.plain(RenderRuleList::join)
.build()
}
@ -200,10 +200,10 @@ data class RenderMatch(
companion object {
val ADAPTER = KConcreteTypeAdapter.Builder(RenderMatch::class)
.list(RenderMatch::pieces, Piece::class)
.list(RenderMatch::matchAllPoints, Matcher::class)
.list(RenderMatch::matchAnyPoints, Matcher::class)
.list(RenderMatch::subMatches, RenderMatch::class)
.list(RenderMatch::pieces)
.list(RenderMatch::matchAllPoints)
.list(RenderMatch::matchAnyPoints)
.list(RenderMatch::subMatches)
.plain(RenderMatch::haltOnMatch)
.plain(RenderMatch::haltOnSubMatch)
.build()
@ -233,7 +233,7 @@ data class RenderMatchList(
companion object {
val ADAPTER = KConcreteTypeAdapter.Builder(RenderMatchList::class)
.plain(RenderMatchList::name)
.list(RenderMatchList::list, RenderMatch::class)
.list(RenderMatchList::list)
.build(asList = true)
}
}

View File

@ -475,8 +475,8 @@ class KConcreteTypeAdapter<T : Any>(
*
* Список неизменяем (создаётся объект [ImmutableList])
*/
fun <V : Any> list(field: KProperty1<T, List<V>?>, type: KClass<V>): Builder<T> {
return this.list(field, type.java)
inline fun <reified V : Any> list(field: KProperty1<T, List<V>?>): Builder<T> {
return this.list(field, V::class.java)
}
/**