Nikky
12/25/2018, 1:00 AMprivate fun <T> findAllDescriptors(serializer: DeserializationStrategy<T>): Set<SerialDescriptor> {
val descriptors = mutableSetOf<SerialDescriptor>()
serializer.descriptor.collectElementDescriptors(descriptors)
return descriptors
}
private fun SerialDescriptor.collectElementDescriptors(descriptors: MutableSet<SerialDescriptor>) {
for (childDescriptor in this.elementDescriptors()) {
if(descriptors.contains(childDescriptor)) continue
childDescriptor.collectElementDescriptors(descriptors)
descriptors += childDescriptor
}
}