brief
В качестве упражнения с макросами накодякал библиотечку, которая генерит конструкторы для кейс-классов с зарефайненными полями.
https://github.com/poslegm/brief
Зачем это нужно:
- Типобезопасно провалидированные поля кейс-классов;
- Вместо fail-fast валидации аккумулировать ошибки по всем полям;
- В сообщениях об ошибках видеть названия проблемных полей и что пошло не так;
- При этом не писать тонны бойлерплейта.
В планах устранение ограничений (не поддерживаются классы с тайп-параметрами и тайп-алиасы для полей) и миграция на Scala 3. Зависимость только на refined.
Скорее всего аналогичные библиотеки уже существуют, но они очевидно имеют фатальный недостаток. Возможно, и моё поделие будет кому-нибудь полезно.
До начала работы над этой либой макросы устрашали, а оказалось, что нехитрая кодогенерация на них делается без особых сложностей.