эмуляцией, которые видел, были для параметров функции
суть в чем
на бэке с axum изображаю rbac с oidc
всякие валидации подписей токена, срок жизни и тд проверяю
дошел, собственно, до ролей
намутил трейт, отражающий роль
завел пару пустых енамов и имплементнул для них этот трейт
дальше сделал newtype дженерик структуру требуемых ролей как экстрактор axum, у которого в дженерике тот трейт роли, а в логике экстрактора проверка на наличие таких ролей в токене
это все круто и даже работает, но структура-экстрактор имеет только одно дженерик поле. А если нужно, чтобы один роут требовал две роли? А если любую из двух? Как такое сделать, если вариадики не поддерживаются?
А можно код?)) а то воображение хромает))
берите лучше хрустальный шар
Не уверен что это то что тебе нужно, но я давеча извращался вот так: https://github.com/JohnDowson/unzip_iter/blob/main/unzip_macros/src/lib.rs
https://pastebin.com/VHQE5eGe требование "иметь все роли из списка" я вроде победил а вот с "любую роль из списка" затуп, потому что если делать как по ссылке, опциональные экстракторы, то он может ни одной не иметь
А почему просто один вектор с ролями не передавать? В нем и любую роль прокидывать, и все одновременно, если надо
а как это выглядит с параметрами функции? Вызываю хендлеры и передаю туда эти структуры не я же
Как сложно читать 😅. Можно поподробнее об двух ролях?
И почему именно пустые enum? Можно же просто ZST
Обсуждают сегодня