Size: a a a

2020 December 31

p

polunin.ai in rust_offtopic
но у тебя там свои костыли
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
я не об этом
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ActixService::new() - не вызывается нигде
источник

p

polunin.ai in rust_offtopic
его вызывает сам ServiceProvider когда запрашивается ActixService
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
а откуда он берет Method?
источник

p

polunin.ai in rust_offtopic
https://github.com/p0lunin/teloc/blob/master/teloc/src/actix_support.rs#L82 вот здесь происходит вызов ServiceProvider::resolve() и он передает в функцию нужные ей данные которыми владеет
источник

p

polunin.ai in rust_offtopic
f - это твой хендлер
источник

p

polunin.ai in rust_offtopic
Αλεχ Zhukovsky
а откуда он берет Method?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
  (($($num:tt, $param:ident),*), $($arg:ident, $other:ident),*) => {
       impl<$($param,)* ParSP, DepsSP, CreateScope, ScopeResult, F, Res, $($arg, $other),*> Factory<(HttpRequest, $($param,)*), Pin<Box<dyn Future<Output = Res::Output> + 'static>>, Res::Output>
           for DIActixHandler<ServiceProvider<ParSP, DepsSP>, CreateScope, F, ScopeResult, ($($arg,)*), ($($other,)*)>
источник

ΑZ

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

p

polunin.ai in rust_offtopic
я конечно МОГУ сделать так чтобы метод вручную брался из реквеста
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
короч логика в том что ты регаешь inject который на вход получает хттпреквест и сервис-локатор и просит себя из него сконструировать?
источник

p

polunin.ai in rust_offtopic
но не уверен что это действительно нужно
источник

p

polunin.ai in rust_offtopic
Αλεχ Zhukovsky
короч логика в том что ты регаешь inject который на вход получает хттпреквест и сервис-локатор и просит себя из него сконструировать?
inject это просто указание контейнеру что его можно конструировать вот таким образом с такими зависимостями
источник

p

polunin.ai in rust_offtopic
так, ща распишу весь пайплайн
источник

Т8

Т-34 85 in rust_offtopic
а это кто
А в C можно оставлять переменную неинициалированной и копировать её значение куда-то?
можно. Даже можно читать значение, если флаг не передать
https://gcc.gnu.org/wiki/Better_Uninitialized_Warnings
источник

p

polunin.ai in rust_offtopic
polunin.ai
так, ща распишу весь пайплайн
1. Регается DiActixHandler. У него есть:
1) SP - провайдер сервисов
2) Handler - актиксовая функция которая принимает на вход зависимости и всякие web::Data<>, web::Json<> такого вида
2. Приходит реквест.
2.1. Создается скоуп от SP и туда кладется HttpRequest.
2.2. Резолвятся все зависимости которые нужны для Handler. Они могут захотеть для своей инициализации и HttpRequest, который скопируется из скоупа.
2.3. Вызывается функция.
источник

p

polunin.ai in rust_offtopic
2.2. вот вызывается верхний метод.
он вызывает внутри себя нижний, чтобы использовать нижний для тестирования
источник

p

polunin.ai in rust_offtopic
нужно бы добавить что можно получать данные реквеста внутри сразу без дополнительных конструкторов, да
источник

p

polunin.ai in rust_offtopic
ну ладно
источник