Правда сами тесты я буду писать позже, когда РОС заработает, пока я хэловорд перелопачиваю так как просто разбираюсь в том как и что удобнее.
Я нашел таки способ идеально готовить с минимальными затратами вареные яйца. Аэрогриль. В нем они не лопаются. Осталось только время подобрать, судя по всему 180 градусов и 9 минут. Попробую на 220 может быстрее будет. Никакой воды не надо кипятить. Потом бросил в холодную и все, гриль еще и пищит когда надо.
Так же не стал совсем уж оторванный от реальности вариант тестирования делать, поднимается все почти настоящее.
В тестировании на расте нет никаких граблей, правда не хочу разбрасывать тестовый код где попало так что только в контроллерах и одном, специально огороженном, хранилище констант. Что бы через полгода не гадать где все искать. Ошибки при падении надо бы облагородить немного, но пока хватит красить забор, накатаю еще эндпоинт.
В итоге в хэловорде будут сосуществовать ручные маппинги и авто, где что. Пойдет. Для всех моделей буду сразу писать сериализатор и обратно. Серде атрибутов хватает для этого почти всегда и писанины не так и много...хотя идеал когда нет, конечно. Запилю инфру под тестирование в ближайшее время полностью. Попробую придерживаться растовой традиции смешивания кода и тестов...хочется еще бэктрейсы в падения добавить.
deserializable_struct!(PublicKeyPem, String, "String");
Красивее не вышло, стринг надо два раза писать.
Так что типы будут жирные по тексту, а не автомат.
#[derive(Debug, Serialize, Deserialize)]
#[serde(from = "String")]
pub struct PreferredUsername(pub String);
impl std::ops::Deref for PreferredUsername {
type Target = String;
fn deref(&self) -> &Self::Target {
&self.0
}
}
impl From<String> for PreferredUsername {
fn from(value: String) -> Self {
PreferredUsername(value)
}
}
Может я просто пока что то не понимаю.
Оказывается таки да, рускулайт серде не поддерживает кортежные структуры, там имен полей нет, но почему не поддерживает их в качестве значений, загадка. Нашел самое короткое решение
#[serde(from = "String")]
В итоге можно совсем мало потом написать, реализовать From<String> и много гетов можно не писать. При этом если тип внешний то можно десериализатор накатать все же. Это самое короткое, что можно так как для серде тоже надо. Короче увы нет решения кажется.
Медитирую, люблю смотреть научпоп лекции в ютубе, гулять. По субботам хожу в баню потом сижу в кондитерской и читаю. Обожаю музеи современного искусства. Предпочту посидеть у озера и посмотреть на горы. Этот инстанс мой. Еще есть канал https://youtube.com/@user-tc9eq9pz2q?si=uPmChHjU3UyZIDET
Демократы, либералы, либертарианцы, анархисты, исламисты, христиане и представители прочих религий никогда не перестанут конфликтовать до тех пор пока не поймут что добрососедские отношения намного ценнее всех их религий.
Я (с)