janvladimirmostert
04/29/2023, 3:09 PM@Serializable
	class Blah1()
	
	inline fun <reified T : Blah1> blah(input: String){
		Json.decodeFromString<T>(input)
	}
Usecase: I want to do something like this and get rid of from / to json boilerplate
fun <REQ, RES> doSomething(input: String, handler: REQ.() -> RES): String {
		val req = Json.decodeFromString<REQ>(input)
		val res = handler.invoke(req)
		return Json.encodeToString<RES>(res)
	}
REQ needs te be deserializable and RES should be serializablejanvladimirmostert
04/29/2023, 3:20 PMinline fun <reified REQ : Serializable, reified RES : Serializable> doSomething(input: String, handler: REQ.() -> RES): String {
	val req = Json.decodeFromString<REQ>(input)
	val res = handler.invoke(req)
	return Json.encodeToString<RES>(res)
}
let's see if it works ...Emil Kantis
04/29/2023, 3:38 PMreified T and then there’s a serializerFor(type :KType) or something like itEmil Kantis
04/29/2023, 3:39 PMSerializable as type constraint afaik, since it’s an annotationjanvladimirmostert
04/29/2023, 3:51 PMinline fun <reified REQ, reified RES> doSomething(input: String, crossinline handler: (REQ) -> RES): String {
	val req = Json.decodeFromString<REQ>(input)
	val res = handler.invoke(req)
	return Json.encodeToString<RES>(res)
}ephemient
04/29/2023, 4:16 PMjanvladimirmostert
04/29/2023, 4:17 PM