Bernhard
10/16/2025, 12:29 PMinline fun <reified T : Any> createEvent(
endpointTarget: String,
id: String,
type: String,
payload: T,
) = Event(
endpointTarget = endpointTarget,
id = id,
type = type,
payload = payload,
typeInfo = typeInfo<T>()
)
class Event<out T : Any> private constructor(
val endpointTarget: String,
val id: String,
val type: String,
val payload: T,
val typeInfo: TypeInfo,
)Youssef Shoaib [MOD]
10/16/2025, 12:42 PMinternal, or use the companion objectBernhard
10/16/2025, 12:43 PMphldavies
10/16/2025, 12:43 PM@PublishedApi internalphldavies
10/16/2025, 12:43 PMclass Event<out T : Any> @PublishedApi internal constructor(
val endpointTarget: String,
val id: String,
val type: String,
val payload: T,
val typeInfo: TypeInfo,
) {
companion object {
inline fun <reified T : Any> create(
endpointTarget: String,
id: String,
type: String,
payload: T,
) = Event(
endpointTarget = endpointTarget,
id = id,
type = type,
payload = payload,
typeInfo = typeInfo<T>()
)
}
}Bernhard
10/16/2025, 12:44 PMAnton Saatze
10/18/2025, 4:44 PMoperator fun invoke
Like this:
class Foo private constructor(val bar:Int){
override fun toString():String{
return "$bar"
}
companion object{
operator fun invoke(barAsString : String): Foo{
return Foo(barAsString.toInt())
}
}
}phldavies
10/18/2025, 4:45 PM