>> Вот делать мне больше нечего, кроме как решать проблемы пэхапунов. Ну, реально.
>> Зачем я буду писать все эти замороки, есть у меня есть
> ну так, чтоб немного отличаться от абстрактного диванного теоретика, не?Нет, это недостаточная причина.
>> Rocket[1]? Который генерит скомпилированный нативный бинарь, выполняя на этапе компиляции
> и для любого мелочного исправления нужно его перекомпилировать. (и еще пятнадцать раз,
> потому что с первого не всегда получается правильно)
Естественно. Ещё его надо тестировать после любого мелочного исправления. Вам что надо, надёжная система или пошатывающаяся от малейшего прикосновения гора костылей?
>> всю работу, которую можно выполнить на этапе компиляции, чтобы не выполнять
> включая сборку кода, который вероятнее всего не будет вызван ровно ни разу
> до следующей перекомпиляции. А теперь представляем на нем такого типичного монстра
> каких пишут для больших сайтов на той дрюпалке - и ужасаемся.
Я не понял в чём проблема? Нехватка процессорной мощности сервера? Собирай и тестируй на выделенной под эти задачи машине, а не на сервере. Я, кстати, так и делаю, заливая на сервер готовые бинари, собранные в release.
>> согласен с тем, что лучший подход -- это тащить данные блобом
>> до того места, где они понадобятся, и где-нибудь там, где они
> там ньюансы бывают... например, место это вообще не у нас.
И что? В том месте программист возьмёт предложенный нами тип, и использует его. С нашим типом связана вся информация как надо парсить данные и как их надо верифицировать. Он может писать всё что угодно, но парсинг и верификация данных будет выполняться нашим кодом, который был хорошо продуман, документирован и оттестирован. Который имеет связанную с ним историю разработки, историю багов в нём найденных и исправленных, историю улучшений с объяснениями зачем они, и почему они были сделаны именно так, а не иначе.
>> Это делается _элементарно_. Обработчик запроса получает распарсенную форму, в которой
> то есть кто-то что-то сделал за тебя.
Да. Или нет. Смотря что ты понимаешь под "сделал за тебя". В приведённом примере скорее "да", чем "нет": там ты можешь видеть, что объявления и структуры, и функции-обработчика запроса скармливается макросам, которые генерят весь необходимый код. Скорее "да", потому что вызов макроса для получения тривиальной реализации impl FromForm ты, я думаю, не считаешь поводом считать, что это сделано мною, а не кем-то ещё. Даже несмотря на то, что буквы "#[derive(FromForm)]" написал я.
>> уже проверены все значения -- строки на валидность utf8, числа на
> а кто сказал что это utf? ;)
Я сказал. Там написано в объявлении структуры: String. String определяется в расте как utf8 owned строка. Там не может быть ничего другого.