а можно код такого?
так никто не делает, все работают с сингл активити
что ты там используешь для асинхронщины
Эта задача решается плагинами-обёртками-адаптерами, которые на вход получают данные в каком-то одном формате, преобразуют его в другой, внутренний формат вашей библиотеки, который тоже один и дальше она работает только с ним, а потом отдаёт результат адаптеру для переконвертации.
1. Описанное вами поведение абсолютно некорректно с точки зрения некоторых указанных структур данных и стандарта языка. У объектов, сетов, мапов и т.д. нет никакого range. То, что это можно закостылить не означает, что это стоит делать.
Очень хорошая. Только подумайте, а эта библиотека вообще нужна? Нет ли аналогов и почему?
В объекте ключи/значения не фиксированы по порядку.
Конечно, ещё надо понимать, какие задействованы будут структуры и типы.
Несколько разных функций? Либо много проверок внутри.
for (var obj of range)
Если у листа, сета и массива одинаковая структура (в значение передаётся значение), то мап передаёт в значение [key, value] и как ты это учтёшь?
for (let ВОТ_ИЗ_ЭТОГО of range)
А если будет передан объект? А строка? И то, и то, итерабельно, но уже по своему.
не слишком много ответственности на 1 функции?
Если с момента создания класса, к нему сразу есть юнит тест, это означает что больше этот код целиком вычитывать не нужно.
или в очень маленькой команде (3-5 разработчиков), а в проектах, над которым работает несколько десятков людей ты не работал.
ИМЕННО от этого и выручает автоматическое тестирование, первый шаг в котором это юнит тесты.
if (random() == magic_number) crash();
У говорил мне по поводу допущения багов в таких системах, которые должны работать как часы о том, что цена бага в данном случае - это человеческие жизни
А если никак, то зачем ты мне пишешь, что не надо это делать в потоке UI?)))
За оскорбления вообще модератору пожалуюсь.