Для скалы это работает так: неименованные туплы — это просто кортеж энкодеров. для примитивов энкодеры заданы для кейс-классов длинной больше чем пять уже генерируюсят сериалайзеры
там аккуратненько читаются тайптеги, разбираются на типы дженериков и так далее и сериализация — это сериализация каждого поля отдельно, а десериализация — это вызов конструктора с аргументами, переданными в правильном порядке
там аккуратненько читаются тайптеги, разбираются на типы дженериков и так далее и сериализация — это сериализация каждого поля отдельно, а десериализация — это вызов конструктора с аргументами, переданными в правильном порядке
но кто-то мне когда-то говорил, что это работает медленнее чем наскальная. И я в это в целом верю — в скале мы получаем прямо готовый код декомпилятора бинарных данных, а крио — это дженерик решение