Size: a a a

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

2020 October 17

(L

(((Mike Lubinets))) in Rust — русскоговорящее сообществo
Mikola Summer Duck
Переслано от Mikola Summer Duck
Сагжесчоны? Я в частности хочу чтоб можно было делать
let my_state = MyAwesomeState { foo: &foo, bar: &bar };
executor.tick(Some(my_state))
а затем во фьючере вызывать
fn get_state<'a, T>() -> Result<&T, GetStateError>
Хорошо, а что ты дальше хочешь делать с произвольным &T?
источник

(L

(((Mike Lubinets))) in Rust — русскоговорящее сообществo
Mikola Summer Duck
Переслано от Mikola Summer Duck
Сагжесчоны? Я в частности хочу чтоб можно было делать
let my_state = MyAwesomeState { foo: &foo, bar: &bar };
executor.tick(Some(my_state))
а затем во фьючере вызывать
fn get_state<'a, T>() -> Result<&T, GetStateError>
Это выглядит будто тебе просто нужен AsRef
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
(((Mike Lubinets)))
Хорошо, а что ты дальше хочешь делать с произвольным &T?
Фьючеры вызывают let my_state: MyAwesomeState = get_state().
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
(((Mike Lubinets)))
Это выглядит будто тебе просто нужен AsRef
К сожалению нет, потому что сейчас нет никакого способа прокинуть не статическую инфу в исполняемый фьючер.
источник

(L

(((Mike Lubinets))) in Rust — русскоговорящее сообществo
Mikola Summer Duck
Фьючеры вызывают let my_state: MyAwesomeState = get_state().
Это не сходится с сообщением выше, там у тебя произвольный T, а не MyAwesomeState
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
(((Mike Lubinets)))
Это не сходится с сообщением выше, там у тебя произвольный T, а не MyAwesomeState
Это то как оно будет использоваться. Для функции tick() MyAwesomeState это T без отличительных черт.
источник

(L

(((Mike Lubinets))) in Rust — русскоговорящее сообществo
Mikola Summer Duck
Это то как оно будет использоваться. Для функции tick() MyAwesomeState это T без отличительных черт.
Я не очень понимаю — если у этого T нет признаков, ты его не можешь использовать никак
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
То есть, в идеале пользовательский код и пользовательские фьючеры знают о MyAwesomeState, библиотека не знает.
источник

(L

(((Mike Lubinets))) in Rust — русскоговорящее сообществo
Даже Drop и тот имплицитный только
источник

D

Denis in Rust — русскоговорящее сообществo
(((Mike Lubinets)))
Я не очень понимаю — если у этого T нет признаков, ты его не можешь использовать никак
дык это фреймворк о них не знает, а пользователь — знает, он же и подсовывает туда что попало
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
(((Mike Lubinets)))
Даже Drop и тот имплицитный только
Библиотеке не нужно использовать, только прокидывать.
источник

(L

(((Mike Lubinets))) in Rust — русскоговорящее сообществo
Mikola Summer Duck
То есть, в идеале пользовательский код и пользовательские фьючеры знают о MyAwesomeState, библиотека не знает.
А, то есть планируется передавать самому пользователю
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
Верно
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
Форвард выше с точки зрения пользователя
источник

D

Denis in Rust — русскоговорящее сообществo
может твой фреймворк просто параметризовать?
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
Я не могу параметризовать dyn Future
источник

D

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

D

Denis in Rust — русскоговорящее сообществo
откуда на поле появился dyn Future?
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
always have been
источник

MS

Mikola Summer Duck in Rust — русскоговорящее сообществo
От него все беды.
источник