172 похожих чатов

Блин, у раста рили проблемы с диаем. @p0lunin у тебя

твой фреймворк рили работает? Если да то я мб попробовал бы его заюзать. Ты смог сделать скопед-депенденси на FromRequest?

24 ответов

16 просмотров

Да. Я уже скидывал тебе пример. Если ещё будут вопросы или что-то непонятное - пиши. https://github.com/p0lunin/teloc/blob/master/examples/actix_example/src/services.rs#L39 вот пример конструктора который на вход получает &Method из scoped HttpRequest

Αλεχ-Zhukovsky Автор вопроса
Dmytro Polunin
Да. Я уже скидывал тебе пример. Если ещё будут воп...

ну ок, попробую. Но если будут вопросы - то я тут писать буду. Не обессудь

а shaku не устраивает/пробовал?

Αλεχ-Zhukovsky Автор вопроса
Artem Medvedev
а shaku не устраивает/пробовал?

не пробовал. В планах попробовать полунинскую поделку, но пока до раста руки не доходят

Αλεχ Zhukovsky
не пробовал. В планах попробовать полунинскую поде...

С teloc тоже хочу покапаться как-нибудь, но по беглому взгляду эксамплов/тестов - функциональных различий особо не вижу 🤔

Artem Medvedev
С teloc тоже хочу покапаться как-нибудь, но по бег...

Основное различие - добавление teloc в проект практически не требует никаких изменений в старом коде. Единственное что требуется - это навесить один макрос #[teloc::inject] на конструкторы для нужных типов, после чего создать одну структуру. Для rocket есть поддержка у shaku. На данный момент у teloc нет. Также при нежелании использовать dyn Trait в shaku придется писать вот такие портянки https://github.com/p0lunin/teloc/issues/8 Ну и в целом идеология teloc - как можно меньше макросов. По сути для полноценной работы необходим лишь один макрос. В shaku основа - динамические трейт-обжекты, там основной упор сделан на них, как в большинстве других диаев.

Dmytro Polunin
Основное различие - добавление teloc в проект прак...

Ну в целом, почему большинство di полагаются на трейт-обжекты - довольно понятно. Как правило за счет DI я хочу также организовать хорошую инверсию зависимостей. Но сам подход к безболезненному внедрению в проект - мне нравится. Шаку обмазан слегка в этом плане.

Dmytro Polunin
Основное различие - добавление teloc в проект прак...

И как я понимаю, интеграцию для актикса не получится так просто заюзать, если у меня роуты макросами actix’a обозначены (аля #[get("/some_resource”)] ). Поправь, если не так

Artem Medvedev
И как я понимаю, интеграцию для актикса не получит...

Хм. Я и забыл про наличие такого макроса. Как будет время, попробую.

Αλεχ-Zhukovsky Автор вопроса
Artem Medvedev
И как я понимаю, интеграцию для актикса не получит...

не люблю эти макросы, с ними неудобно продвинутые штуки делать. Для гвардов и прочего нужно сторонние крейты ставить и прочие расширяторы

Αλεχ Zhukovsky
не люблю эти макросы, с ними неудобно продвинутые ...

хм, гварды там можно навешивать точно, разве что это не всегда удобно

Αλεχ-Zhukovsky Автор вопроса
Artem Medvedev
хм, гварды там можно навешивать точно, разве что э...

так ты же сам пилил под это дело крейт: https://t.me/rustlang_ru/351577 Не очень звучит как "можно навешивать" если пришлось это пилить

Αλεχ Zhukovsky
так ты же сам пилил под это дело крейт: https://t....

Там крейт немного для другого все же) Гвардом тоже можно навесить, просто когда гварды с кастомными параметрами например - действительно удобнее в коде

Αλεχ Zhukovsky
не люблю эти макросы, с ними неудобно продвинутые ...

Жду когда можно будет писать макросы в стиле функций macro fn has_role(fun: Function) -> Function { expr! { fn $fun.name($fun.args) { check_role(); $fun.call($fun.args); } } } Вот что-то такое было бы бомбой

Αλεχ-Zhukovsky Автор вопроса
folex
https://github.com/rust-lang/rfcs/blob/master/text...

Не. Это опять же - макросы над token tree. Хочу макросы над внутренним представлением.

Dmytro Polunin
Не. Это опять же - макросы над token tree. Хочу ма...

насколько внутренним? syn повыше чем токены

Roma S
насколько внутренним? syn повыше чем токены

Настолько, чтобы знать конечные типы, методы, реализуемые трейты и т.п.

Dmytro Polunin
Настолько, чтобы знать конечные типы, методы, реал...

это проблема курицы и яйца получится — чтобы узнать реализуемые трейты, нужно знать для чего они реализуемы, а макрос ещё не выплюнул ничего

Vlad Frolov
это проблема курицы и яйца получится — чтобы узнат...

кажется, с multi stage можно такое делать, в духе http://okmij.org/ftp/ML/MetaOCaml.html

Αλεχ-Zhukovsky Автор вопроса
Vlad Frolov
это проблема курицы и яйца получится — чтобы узнат...

не курицы и яйца, циклов-то у тебя не будет. А так да, у тебя вывод может зависеть от чего-то

Vlad Frolov
это проблема курицы и яйца получится — чтобы узнат...

Выплевывать экспанд всех макросов сначала, а только потом чекать типы конечно

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта