Size: a a a

2020 June 10

DS

Doge Shibu in rust_offtopic
В рантайме он исчезнет
источник

DS

Doge Shibu in rust_offtopic
От него не останется ничего
источник

SP

Stanislav Popov in rust_offtopic
ну это вроде возможно
источник

SP

Stanislav Popov in rust_offtopic
так что победа
источник

p

polunin.ai in rust_offtopic
Пиши сразу нормально) (троллинг)
источник

DS

Doge Shibu in rust_offtopic
Stanislav Popov
ну это вроде возможно
А ты попробуй. Это возможно, но какой ценой.
источник

DS

Doge Shibu in rust_offtopic
Придется как дураку с HRTB бегать
источник

r

red75prime in rust_offtopic
Инстанциируем HKT ручками. 🤷‍
источник

p

polunin.ai in rust_offtopic
Doge Shibu
А ты попробуй. Это возможно, но какой ценой.
Да ладно тебе. Напишешь полотно типа в отдельном файле😁
источник

p

polunin.ai in rust_offtopic
И импортируешь в файл с трейтом
источник

G

Gymmasssorla in rust_offtopic
Генерируешь тип из диаграммы-картинки
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
Да ладно тебе. Напишешь полотно типа в отдельном файле😁
Проблема не в типе, проблема в других местах будет. То есть какой сейчас state of the art:
trait HasMyItems<'a> {
 type MyItems : Iterator<Item = &'a MyItem>;
 fn get_my_items(&'a self) -> MyItems;
}

// Использование:

fn do_something<'a, Holder: for<'a> HasMyItems<'a>>(holder: &Holder) {
 ...
}
источник

DS

Doge Shibu in rust_offtopic
Ну либо брать nightly + GAT и верить в лучшее
источник

DS

Doge Shibu in rust_offtopic
Что оно не даст тебе ICE в лицо
источник

p

polunin.ai in rust_offtopic
Doge Shibu
Проблема не в типе, проблема в других местах будет. То есть какой сейчас state of the art:
trait HasMyItems<'a> {
 type MyItems : Iterator<Item = &'a MyItem>;
 fn get_my_items(&'a self) -> MyItems;
}

// Использование:

fn do_something<'a, Holder: for<'a> HasMyItems<'a>>(holder: &Holder) {
 ...
}
Ну вроде все норм
источник

DS

Doge Shibu in rust_offtopic
А проблема с типом итератора решается через trait_alias и impl trait в определении типа
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
Ну вроде все норм
В любом нетривиальном примере у тебя будет HRTB головного мозга, которое при этом иногда не работает как надо.

Я тут недавно бегал с примером такого, народ сказал, что известный косяк с HRTB
источник

p

polunin.ai in rust_offtopic
Hrtb?
источник

r

red75prime in rust_offtopic
higher-rank trait bounds
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
Ну вроде все норм
Ну и сравни с решением на GAT:
```
trait HasMyItems {
 type MyItems<'a> : Iterator<Item = &'a MyItem>;
 fn get_my_items<'a>(&'a self) -> MyItems<'a>;
}

// Использование, заметь, HRTB исчезло к чертям собачим

fn do_something<'a, Holder: HasMyItems>(holder: &Holder) {
 ...
}

```
источник