Size: a a a

2020 June 06

e🦀

eupn 🦀 in Rust Async
Алексей Герасимов
Map реализует Stream, Stream это не тип, а трейт
Да, у меня стрим за Pin<Box<dyn Stream + …>>
источник

e🦀

eupn 🦀 in Rust Async
Вызвал .boxed(), вроде помогает вернуться к изначальному типу с другим типом элементов
источник

АГ

Алексей Герасимов... in Rust Async
ну у тебя будет box в box, так себе конечно
источник
2020 June 07

D

Dmitry in Rust Async
Kai Ren
А вообще, глянь как в актикcе запилены request extenstions. И научишься делать вот так ctx.di.get::<UserRepo>()
кстати, раз вспомнили пример с axtix-web
https://github.com/actix/actix-web/blob/master/actix-http/src/extensions.rs

есть вопрос: дженерики это у нас статический диспатч, какой тогда смысл в ограничении на лайфтайм: <T: 'static>?
с со статическим лайфтаймом для ссылок все понятно, но ограничение на статический лайфтайм для типа - тут я начинаю что-то упускать
источник

KR

Kai Ren in Rust Async
Dmitry
кстати, раз вспомнили пример с axtix-web
https://github.com/actix/actix-web/blob/master/actix-http/src/extensions.rs

есть вопрос: дженерики это у нас статический диспатч, какой тогда смысл в ограничении на лайфтайм: <T: 'static>?
с со статическим лайфтаймом для ссылок все понятно, но ограничение на статический лайфтайм для типа - тут я начинаю что-то упускать
там под капотом даункаст из Any, а он требует 'static
источник

D

Dmitry in Rust Async
это понятно, но как в дженерике может оказаться не статический тип? если весь диспатч при компиляции происходит
и все типы будут известны сразу
источник

D

Dmitry in Rust Async
или иными словами, что вызывает необходимость указывать это ограничение для даункаста из Any

в контексте дженериков указание его выглядит избыточным
источник

D

Dmitry in Rust Async
похоже дошло
нестатические ссылки в типе могут все портить 🤔
я прав?
источник

АГ

Алексей Герасимов... in Rust Async
Dmitry
или иными словами, что вызывает необходимость указывать это ограничение для даункаста из Any

в контексте дженериков указание его выглядит избыточным
если структура содержит ссылки и они не static то и сама структура не 'static
источник

АГ

Алексей Герасимов... in Rust Async
‘static это не про время компиляции/время исполнения
источник

KR

Kai Ren in Rust Async
Dmitry
похоже дошло
нестатические ссылки в типе могут все портить 🤔
я прав?
Строчил долго ответ... да
источник

D

Dmitry in Rust Async
Алексей Герасимов
если структура содержит ссылки и они не static то и сама структура не 'static
tnx
источник

D

Dmitry in Rust Async
Алексей Герасимов
‘static это не про время компиляции/время исполнения
да - инерция мышления тут переодически сбивает с толку )
источник

АГ

Алексей Герасимов... in Rust Async
про compile time / runtime это const/не const
источник

D

Dmitry in Rust Async
ага
тут больше сбило с толку, что дженерики - статический диспатч и тут же static ограничение на тип )
источник

В

Вафель in Rust Async
Dmitry
кстати, раз вспомнили пример с axtix-web
https://github.com/actix/actix-web/blob/master/actix-http/src/extensions.rs

есть вопрос: дженерики это у нас статический диспатч, какой тогда смысл в ограничении на лайфтайм: <T: 'static>?
с со статическим лайфтаймом для ссылок все понятно, но ограничение на статический лайфтайм для типа - тут я начинаю что-то упускать
Советую прочитать статью Common Rust Lifetime Misconceptions by pretzelhammer, там есть объяснение именно этого (и не только)
источник

D

Dmitry in Rust Async
вот, кстати, да - акцент на misconception в статье - отличная вещь, в отличие от большинства статей пытающихся донести саму концепцию, но ни разу не рассматривающих такие вот сп5ецифические кейсы
источник

K

Kerrigan in Rust Async
у кого-нибудь не завалялся пример как в актиксе получить доступ к стейту приложения внутри миддвари?
источник

K

Kerrigan in Rust Async
в документации написано, что можно, но как - непонятно
источник

K

Kerrigan in Rust Async
уже подсказали, что в Request.app_data можно достать всё что нужно
источник