Size: a a a

Rust — русскоговорящее сообществo

2020 March 24

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
Alex Zhukovsky
я думал что футуры тоже стейтлесс а стейтфул становится внутренняя фигня внутри реактора когда поллинг начинается. Но видимо это не так. А жаль
футуры это же конеченый автомат, как он может быть stateless?
источник

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Кстати, а почему в Rust футуры не кешируют результат и не возвращают его при повторных авейтах как примерно во всех остальных языках? Из-за передачи владения?
fused?
источник

AT

Alexander Tchitchigin in Rust — русскоговорящее сообществo
Алексей Герасимов
футуры это же конеченый автомат, как он может быть stateless?
fn nextState(cur_state: State) -> State 😉
источник

🦉⁣

🦉 ⁣ in Rust — русскоговорящее сообществo
а в std нет fusedFuture?
источник

ph

pl 🦑 hk in Rust — русскоговорящее сообществo
нет
источник

K

Kitsu in Rust — русскоговорящее сообществo
https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=a020ecc679215ca34112d19c2f0f118c
Такая штука без GAT не заработает или я что-то делаю не так?
источник

Э

Эрик in Rust — русскоговорящее сообществo
А почему не
fn request<'a, R: Request<'a>>(r: &R) -> R::Response
?
источник

r

red75prime in Rust — русскоговорящее сообществo
Kitsu
https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=a020ecc679215ca34112d19c2f0f118c
Такая штука без GAT не заработает или я что-то делаю не так?
А зачем там for<'a>? Это было бы нужно, если Request создавался внутри функции
источник

K

Kitsu in Rust — русскоговорящее сообществo
red75prime
А зачем там for<'a>? Это было бы нужно, если Request создавался внутри функции
лайфтайм же для Response нужен
источник

r

red75prime in Rust — русскоговорящее сообществo
Kitsu
лайфтайм же для Response нужен
Выше ответили
источник

K

Kitsu in Rust — русскоговорящее сообществo
Эрик
А почему не
fn request<'a, R: Request<'a>>(r: &R) -> R::Response
?
чегот у меня не сработало, посмотрю, спасибо
источник

K

Kitsu in Rust — русскоговорящее сообществo
хотя в любом случае выходит проще убрать баунды с трейта и перекинуть их в функцию
источник

YK

Yevhen Kazmin in Rust — русскоговорящее сообществo
как в расте делается подобный сценарий: есть обьект, который умеет другим давать ссылки на свою собственность, но менять ее умеет только он
источник

YK

Yevhen Kazmin in Rust — русскоговорящее сообществo
насколько я знаю нельзя одновременно мутабл и иммутабл ссылки держать
источник

Э

Эрик in Rust — русскоговорящее сообществo
Yevhen Kazmin
как в расте делается подобный сценарий: есть обьект, который умеет другим давать ссылки на свою собственность, но менять ее умеет только он
unsafe?
источник

YK

Yevhen Kazmin in Rust — русскоговорящее сообществo
не хотелось бы конечно unsafe
источник

Э

Эрик in Rust — русскоговорящее сообществo
Ну, то есть, нельзя, чтобы что-то критическое было связано с правильностью прочитанных данных.
источник

ИЛ

Иван Лещенко in Rust — русскоговорящее сообществo
Yevhen Kazmin
как в расте делается подобный сценарий: есть обьект, который умеет другим давать ссылки на свою собственность, но менять ее умеет только он
Скинь ссылку на playground
источник

YK

Yevhen Kazmin in Rust — русскоговорящее сообществo
я думал в расте к таким сценариям особый подход
источник

В

Вафель in Rust — русскоговорящее сообществo
Yevhen Kazmin
как в расте делается подобный сценарий: есть обьект, который умеет другим давать ссылки на свою собственность, но менять ее умеет только он
struct Wrap(T)?

- приватное поле, может быть изменено только самим Wrap
- может раздавать ссылки на своё поле
источник