Vladimir
Anonymous
нельзя сделать чтобы он имплицитно превращался?
Loo
Anonymous
да
Anonymous
смысл в ней
Anonymous
мой вопрос остается
Loo
LooMaclin/derive-newtype-deref: Autogeneration dereference trait implentation for newtype structs
https://github.com/LooMaclin/derive-newtype-deref
Vladimir
значит и о вариантности нет смысла говорить
Но когда речь про коллекции, то такой кастинг требует поддержки от языка подтипов. Но, с текущими возможностями ты можешь сделать лейзи врапера который будет менять тип хештаблицы как-то, тем самым таблицу пересоберать не надо будет
Loo
Vladimir
Лол
Vladimir
Сделал бы уже автовывод трейтов
Vladimir
Был бы мужиком
Loo
А то что выше я скидывал генерит to_%inner_type_name% и as_%inner_type_nsme%
Vladimir
Может есть в каком-то derivative
Vladimir
https://crates.io/search?q=Newtype
Vladimir
Два первых вот про это
A64m
A64m
который естественно, ничего кроме смены типа не делает, потому что представление-то одинаковое
Marat
А зачем нужны новые типы, кроме конечно реализации нереализованных трейтов
A64m
для того чтоб проверять что-то
A64m
тайпчекером
Vladimir
Vladimir
Что значит поддержка подтипов не нужна? Она нужна чтобы сейфово это делать
A64m
A64m
требуется поддержка некоей эквивалентности типов, которая по их представлению в памяти определяется
A64m
это не то же самое что и сабтайпинг
Vladimir
как он тут поможет?
Ну ты скорее всего сможешь сделать transmute::<HashMap<u32, A>, HashMap<A,u32>>(hm)
Vladimir
Vladimir
По размеру в памяти
Vladimir
A64m
по эквивалентности их параметров
Vladimir
Вот
Vladimir
Это и есть ковариантность
Vladimir
Не?
Vladimir
Когда тип зависит от параметров
A64m
но трансмьют же этого не проверяет, он просто кастит, не безопасен
Vladimir
Да, он по размеру в байтах типа
Vladimir
А я тебе говорю, что ковариантность без subtypingа не возможна
Vladimir
Ну или я покрайней мере не понимаю как ты это видишь
Vladimir
Но в данном случае трансмьют будет работать
Vladimir
При условии что хеш структуры равен хешу внутренностей
A64m
ну надо еще такое средство, которое будет проверять безопасно ли трансмьют употребляется
Vladimir
Вариантность?)
A64m
это проще чем вариантность, вариантность позволяет делать такие касты для объектов которые представлены по разному в памяти
Vladimir
Мерль
И разве суть борроу чекера разве как раз не в том, что он убирает часть возможных состояний в рантайме (дата рейсы в частности)?
Alexey
то есть, в теории, статистически растапроги могут быть быстрее плюсатых не потому, что компилятор оптимизирует лучше, или там накладных расходов меньше, а просто потому, что бороучекер заставляет иначе программы организовывать и с данными работать?
Alexey
а в плюсатых каждый городить кто во что горазд?
Мерль
Мерль
Alexey
Да, я понял что это гипотеза пока что
Vladimir
Vladimir
Тут от алгоритма зависит а не реализации и яп
Vladimir
Разве что в расте пишут частично в функциональном стиле и этот подход может быть хорош для ряда задач
strcpy
у раста имхо главная фича это обещанная безопасность в многозадачности, но и бонусы обычных современных языков: менеджер пакетов, эксепшены
Anonymous
эксепшены
Anonymous
🤔
strcpy
использую вижуалстудию сечас — это просто ад, когда надо искать по интернету компоненты, их копипастить в проект, фиксить варнинги руками, а потом в релизе грохнется — и ты незнаешь где
strcpy
я имел ввиду стэк трэйсы конечно
Alexey
А может быть и плох. Лишние копирования туда-сюда, вместо модификации чего-то инплейс.
Alexey
ну, unwinded-паники вполне себе ексепшины. кинуть можно, перехватить можно, деструкторы вызываются. чего еще надо то?
strcpy
это я про плюсы
Alexey
это я про плюсы
винда с вижуалстудией вообще довольно неудобная штука для разработки. особенно для плюсов.
strcpy
есть проблемы на уровне языка с++, раст вполне тянет на киллера, то надо его упрощать мне кажется
Alexey
но, насколько я помню, трейсы там как-то вроде можно включить и даже недокорки генерить. но для этого нужно специально поприсядать конечно.
Alexey
strcpy
ну да, начать кодить довольно тяжело
Alexey
не тяжелее чем на плюсах. IMHO. особенно после плюсов
Alexey
А у раста есть какой-нибудь рекомендованный кодингстайл? ну и тулзы аля автоформат под этот стайл и чекер.
Anonymous
rustfmt
Alexey
отступы принято табами? фигурные скобочки только с новой строчки?
Sergey
strcpy
там вроде можно конфигурировать
Alexey
Ну, не очевидно же. Где про это прочитать? Как принято то?
strcpy
но мне не удалось прикрутить к vscode — там все на соплях пока