Size: a a a

2020 December 29

ΑZ

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

CD

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

ΑZ

Αλεχ Zhukovsky in rust_offtopic
конструктор чего?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
лан, забей
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
завтра буду думать
источник

CD

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

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ну на самом деле тот же актикс работает достаточно "магически" - он хендлер любого вида пережевывает
источник

ΑZ

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

ΑZ

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

CD

Constantine Drozdov in rust_offtopic
Αλεχ Zhukovsky
я могу добавлять ручки и если аргументов не хватит то он выдаст ошибку в рантайме что не зарегано
ну вроде бы по крайней мере одно решение в компильтайме - прописать каждому доступному по DI трейт DICreatable и потом написать (DICreatable... -> Result) -> Result
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Хотя видимо вся магия заканчивается на 9 аргументах у функции)))
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Constantine Drozdov
ну вроде бы по крайней мере одно решение в компильтайме - прописать каждому доступному по DI трейт DICreatable и потом написать (DICreatable... -> Result) -> Result
фишка диая в том что сами объекты не должны знать что создаются через диай
источник

CD

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

ΑZ

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

ΑZ

Αλεχ Zhukovsky in rust_offtopic
завтра буду думать
источник

CD

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

CD

Constantine Drozdov in rust_offtopic
а перечислить 0 раз инструменты закрытого мира, видимо, не позволяют, это функция на юниверсе нужна
источник

ΑZ

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

ΑZ

Αλεχ Zhukovsky in rust_offtopic
а без неё нужно сидеть и думать
источник

CD

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