Я нашел таки способ идеально готовить с минимальными затратами вареные яйца. Аэрогриль. В нем они не лопаются. Осталось только время подобрать, судя по всему 180 градусов и 9 минут. Попробую на 220 может быстрее будет. Никакой воды не надо кипятить. Потом бросил в холодную и все, гриль еще и пищит когда надо.
В тестировании на расте нет никаких граблей, правда не хочу разбрасывать тестовый код где попало так что только в контроллерах и одном, специально огороженном, хранилище констант. Что бы через полгода не гадать где все искать. Ошибки при падении надо бы облагородить немного, но пока хватит красить забор, накатаю еще эндпоинт.
В итоге в хэловорде будут сосуществовать ручные маппинги и авто, где что. Пойдет. Для всех моделей буду сразу писать сериализатор и обратно. Серде атрибутов хватает для этого почти всегда и писанины не так и много...хотя идеал когда нет, конечно. Запилю инфру под тестирование в ближайшее время полностью. Попробую придерживаться растовой традиции смешивания кода и тестов...хочется еще бэктрейсы в падения добавить.
Написал первый тест для хэловорда, в принципе пойдет, я собираюсь в основном делать интеграшки, тестирующие апи ибо юниты я помру писать. Попробую заставить это делать чатгопоту.
В итоге оказалось самое удобное просто все руками написать вместо автомаппингов, так как это просто надежнее и короче. Обычные запросы с именованными параметрами и обычные маппинги руками, либо придется городить вагон десериализаторов или промежуточных моделей. Не то что бы где-то по другому, но была надежда, что newtype хотя бы оно само проглотит, а оно не смогло это делать без доп пометок...что возня и не надо, так как тогда просто руками.
Как выяснилось спустя два шага, дизель для хэловорда это больше гемора, а не меньше. Так как там надо адаптировать типы путем реализации кучи трейтов что бы автомаппинги работали, то есть написать другие маппинги только в десять раз длиннее, так что rusqlite, refinery и третья либа, которая распаковывает структуры в именованные параметры возвращаются.
Вообще, я бы продолжил впиливание дизеля, но надо что бы мозги постепенно решили, что спать пора. После дизеля, в целом останется вероятно десериализатор один для серде запилить хитрый...или нет, как пойдет. Шобы потом оно как-то там все само. И наверное можно доделать уже два самых важных эндпоинта, а то там раскуроченные заготовки лежат, в которых пятьдесят "а вот так если?". Но уже почти все готово к тому что бы нудно пилить по очереди. Никаких "ой хочу еще это" пока нет.
Вырезание anyhow из хэловорда прошло в мирной обстановке с охреневанием лишь по началу. В итоге пришлось сделать ошибку с контекстом (нравится) и внутри нее ошибку конвертер с помощью thiserror куда просто добавить все типы ошибок, что есть в приложении, там их штук десять может, включая зонтичные от либ. В итоге контроль над кодами ответов прямой, контексты есть, а добавление новой ошибки это две строки...ну три, копипастой. Удобство осталось, зато никаких макросов.
Блин, ленился убер настраивать на телефоне запаске пока в ремонте нормальный. Поехал на метро, так нужную ветку закрыли. Поехал в обход, там тоже. Пришлось настраивать, полчаса катаний
И anyhow я кажется из проекта выкину. Thiserror прекрасно ее заменяет. Так же рефинери заменится тем же дизелем. Три либы уйдут, одна добавится, а писанины станет меньше.
@3draven Разве 180° подходит под понятие «вареные»?