Size: a a a

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

2020 April 09

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Даже это меня не спасёт
Rc::new/Arc::new — не часть трейта, поэтому я не смогу их использовать
В RFC есть пример, как это сделать с помощью собственной структурки и паттерна Family
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Там ровно кейс с Rc/Arc описан.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Хотя, технически, я могу сделать что-то типа
trait RcNew<T> {
   fn rc_new(val: T) -> Self;
}

impl<T> RcNew<T> for Rc<T> {
   fn rc_new(val: T) -> Self { Self::new(val) }
}

impl<T> RcNew<T> for Arc<T> {
   fn rc_new(val: T) -> Self { Self::new(val) }
}
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Ну да, там что-то такое и было.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
И требовать себе такой HKT, что ArcOrRc<T>: RcNew<T>
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Gymmasssorla
См. teloxide::Bot
Да там тупо Arc везде
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Да там тупо Arc везде
Да, а что?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Gymmasssorla
Да, а что?
А я хочу, чтобы юзер мог выбрать Rc/Arc
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Emmanuel Goldstein
А я хочу, чтобы юзер мог выбрать Rc/Arc
Сделай две разные структуры
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
polunin.ai
Сделай две разные структуры
С полностью одинаковым кодом
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Emmanuel Goldstein
С полностью одинаковым кодом
Да
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
Emmanuel Goldstein
С полностью одинаковым кодом
Макросы!
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Gymmasssorla
Макросы!
А тут мы возвращаемся к исходному «без макросов»
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
Ты структуры в своём модуле объявляешь же?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Чем сейчас модно считать кавередж?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Gymmasssorla
Ты структуры в своём модуле объявляешь же?
Да
источник

p

polunin.ai in Rust — русскоговорящее сообществo
И засунь в два разных модуля: your_struct::rc::YourStruct, your_struct::arc::YourStruct
источник

G

Gymmasssorla in Rust — русскоговорящее сообществo
Тогда не вижу ничего такого
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
grcov? cargo cov? tarpaulin?
источник

p

polunin.ai in Rust — русскоговорящее сообществo
Emmanuel Goldstein
Чем сейчас модно считать кавередж?
Никогда не понимал зачем его считать😁
источник