Size: a a a

2020 December 29

CD

Constantine Drozdov in rust_offtopic
Αλεχ Zhukovsky
он должен разбирать зависимости, требуемые функции handler из web::Data/web::Json/req.extensions()/... что там ещё можно придумать и совать их аргументами в функцию handler
может, пора плюсовые шаблоны внедрять?) "если получается достать данные из Data, достать, иначе если получается..."
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Doge Shibu
Ну у меня в сервисах разве что обращения к бд нет, а так всё это же было.
у тебя там по-моему чисто вычислительная вещь и ручка по сути одна, так что нещитово
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Constantine Drozdov
может, пора плюсовые шаблоны внедрять?) "если получается достать данные из Data, достать, иначе если получается..."
ну так и надо, вопрос в том что ты не знаешь ЧТО доставать
источник

DS

Doge Shibu in rust_offtopic
Αλεχ Zhukovsky
у тебя там по-моему чисто вычислительная вещь и ручка по сути одна, так что нещитово
Но ручка хитрая с каллбэками по хттп потом и т.п.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
если явно не писать это в макросе, чего не хочется
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
тебе нужен типа деклтайпа, только хитрее
источник

DS

Doge Shibu in rust_offtopic
Αλεχ Zhukovsky
у тебя там по-моему чисто вычислительная вещь и ручка по сути одна, так что нещитово
Но так да, согласен. У меня очень много именно бизнес логики и мало в относительном количестве инфраструктуры.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
чтобы я мог для конкретного спана спросить у компилятора семантическую модель идентификатора и что он означает - что за тип, какие аргументы функи и т.п.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
INamedTypeSymbol  это то что я в расте могу в макросе узнать, а вот SemanticModel  - шиш
источник

CD

Constantine Drozdov in rust_offtopic
Αλεχ Zhukovsky
ну так и надо, вопрос в том что ты не знаешь ЧТО доставать
это не очень комильфо, но есть достаточно известный плюсовый костыль на этот случай
тебе же по сути нужно вызвать конструктор некоторой сущности с хер пойми какими аргументами, правильно?
если он условно не перегружен по определению, ты пихаешь в него аргументами промежуточный класс, для которого определен implicit cast во что угодно, и теперь ты знаешь, что доставать
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Constantine Drozdov
это не очень комильфо, но есть достаточно известный плюсовый костыль на этот случай
тебе же по сути нужно вызвать конструктор некоторой сущности с хер пойми какими аргументами, правильно?
если он условно не перегружен по определению, ты пихаешь в него аргументами промежуточный класс, для которого определен implicit cast во что угодно, и теперь ты знаешь, что доставать
смысл в том что ты не хочешь из контекста доставать вообще всё. А этот подход работает только если ты достанешь всё а потом передашь это всё со словами "сконвертись как-нибудь и возьми что нужно"
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
если я правильно понял что ты предлагаешь
источник

CD

Constantine Drozdov in rust_offtopic
Αλεχ Zhukovsky
если я правильно понял что ты предлагаешь
ну я по сути передаю абсурд в каждый аргумент конструктора
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
то есть когда у тебя функция foo ты ДОЛЖЕН знать что из контекста тебе нужны типы Bar и Baz, а когда функция bar то только тип Yeeeg
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
и как это получить в макросе яхз. В шарпе ты можешь укомпилятора узнать тип foo, из этого узнать что она ожидает аргументами два значения типов Foo/Bar и сгенерировать нужный код
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
а в расте макрос работает на уровне синтаксиса, а про семантику не знает нихуя
источник

CD

Constantine Drozdov in rust_offtopic
Αλεχ Zhukovsky
и как это получить в макросе яхз. В шарпе ты можешь укомпилятора узнать тип foo, из этого узнать что она ожидает аргументами два значения типов Foo/Bar и сгенерировать нужный код
ну вот это же делается в плюсах; технически плюсы вообще позволяют взять аргументы неперегруженной функции в кортеж (но не конструктора, да), но это еще более неприятное решение
источник

CD

Constantine Drozdov in rust_offtopic
у тебя абсурд подставится в () -> Foo и дальше ты пойдешь смотреть, умеешь ли ты Foo создавать в DI-движке
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
я не понимаю при чем тут абсурд
источник