fun <T> List<T>.serialize(
serializer: Serializer,
serializeElement: Serializer.(T) -> Unit,
) {
serializer.serialize_len(size.toLong())
forEach { element ->
serializer.serializeElement(element)
}
}
fun <T> Deserializer.deserializeListOf(deserializeElement: (Deserializer) -> T): List<T> {
val length = deserialize_len()
val list = mutableListOf<T>()
repeat(length.toInt()) {
list.add(deserializeElement(this))
}
return list
}