Size: a a a

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

2020 April 19

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
Tema
pub trait Perform<T> {
 fn perform(&self, conn: &PgConnection) -> Result<T, Error>
 where
   T: Sized;
}
нельзя превратить синхронную функцию трейта в асинхронную в реализации
источник

AV

A V in Rust — русскоговорящее сообществo
Эрик
Но вообще, для таких итераторов обычно делают fn next(&mut self) -> _ { panic!() }
эээ а зачем?
источник

AV

A V in Rust — русскоговорящее сообществo
Kitsu
Без ансейфа кажется не выйдет, но яб Pin еще накрутил сверху, для явности
к чему пин?
источник

В

Вафель in Rust — русскоговорящее сообществo
Tema
не там куча ошибок полетела, а spawn можно заюзать тут?
Заюзать то можно, было бы понимание что ты делаешь...

Если что #[async_trait] надо навесить и на определение трейта и на все имплементации. + ту функцию нужно сделать async
источник

Э

Эрик in Rust — русскоговорящее сообществo
A V
эээ а зачем?
Там две мутабельных ссылки на ноду получить можно через next()?
источник

AV

A V in Rust — русскоговорящее сообществo
Эрик
Там две мутабельных ссылки на ноду получить можно через next()?
на одну и ту же NodeEntry? нет
источник

e

egoarka in Rust — русскоговорящее сообществo
eupn 🦀
Еще есть https://github.com/sagebind/isahc на базе curl-sys, простой и удобный крейт, async/.await тоже поддерживается
Сяп, в копилку
источник

AV

A V in Rust — русскоговорящее сообществo
там каждый бакет собирается в вектор и из него pop-аются ссылки
источник

K

Kitsu in Rust — русскоговорящее сообществo
A V
к чему пин?
Чтоб показать, что элементы внезапно не двигаются, просто как маркер для простоты восприятия
источник

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
Tema
не там куча ошибок полетела, а spawn можно заюзать тут?
spawn где угодно можно заюзать, это аналог new Promise(…) без await, он просто запускает футуру и ты ее резульата уже не получишь, она просто в фоне отработает
источник

Э

Эрик in Rust — русскоговорящее сообществo
Кстати, зачем коллектишь ноды, если можно просто double ended iterator сделать?
источник

K

Kitsu in Rust — русскоговорящее сообществo
впрочем не уверен, что будет проще
источник

AV

A V in Rust — русскоговорящее сообществo
Эрик
Кстати, зачем коллектишь ноды, если можно просто double ended iterator сделать?
ну мне ещё ноды из бакета надо будет сортировать
источник

В

Вафель in Rust — русскоговорящее сообществo
@vorot93 а мири прогонял?
источник

AV

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

В

Вафель in Rust — русскоговорящее сообществo
Прогони
источник

AV

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

AV

A V in Rust — русскоговорящее сообществo
у меня уже есть разбивка на бакеты по логарифму дистанции, для итератора мне осталось только отсортировать пиры внутри бакета
источник

T

Tema in Rust — русскоговорящее сообществo
Алексей Герасимов
spawn где угодно можно заюзать, это аналог new Promise(…) без await, он просто запускает футуру и ты ее резульата уже не получишь, она просто в фоне отработает
то есть я могу заспавнить асинхронную функцию в обычной? Мне результат и не нужен
источник

r

red75prime in Rust — русскоговорящее сообществo
A V
причём мутировать можно только сами элементы
Если есть активная уникальная ссылка на node_table, то больше никаких уникальных ссылок внутрь node_table не может быть. Это UB
источник