172 похожих чатов

Error: lifetime may not live long enough -->

src\server.rs:200:51
|
200 | for (path, group) in &routes.group_by(|x| &x.path) {
| -- ^^^^^^^ returning this value requires that `'1` must outlive `'2`
| ||
| |return type of closure is &'2 std::string::String
| has type `&'1 AtlasRoute`

Вуяд? Што не так? Хочу вот такую структурку групбай сделать:

struct AtlasRoute {
path: String,
value: i32
}

Я конеш могу склонировать но как-то некомильфо

17 ответов

17 просмотров

Врядли, конечно, но &(*x).path не помогает?

Αλεχ-Zhukovsky Автор вопроса
red75prime
Врядли, конечно, но &(*x).path не помогает?

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=6db4ad61698614f373d52bc8e1f7e7df

group_by требует возвращать owned тип, посмотри на сигнатуру

Αλεχ-Zhukovsky Автор вопроса
kitsu
group_by требует возвращать owned тип, посмотри на...

ну а что если мне надо группировать по не-овнед?

Αλεχ Zhukovsky
https://play.rust-lang.org/?version=stable&mode=de...

А. Владеющий итератор. Просто iter() нельзя?

Αλεχ-Zhukovsky Автор вопроса
kitsu
.to_owned() ¯\_(ツ)_/¯

что за чушь, я не могу погруппировать без аллокаций?

Αλεχ Zhukovsky
https://play.rust-lang.org/?version=stable&mode=de...

на не владеющем итераторе должно работать

Αλεχ-Zhukovsky Автор вопроса
red75prime
А. Владеющий итератор. Просто iter() нельзя?

нет, мне группа по значению нужна

Αλεχ Zhukovsky
что за чушь, я не могу погруппировать без аллокаци...

А ты циклом сможешь написать код группировки без аллокаций?

Αλεχ Zhukovsky
нет, мне группа по значению нужна

Though Tough luck. Владеющий итератор, значения перемещаются. А для группировки нужно хранить ключ. Который в данном случае ссылка и инвалидируется

Αλεχ Zhukovsky
нет, мне группа по значению нужна

Вплане? ключ же будет референсом, а структура будет внутри сгруппированных значений (вроде как `GroupBy<&String, Iter<AtlasRoute>`)

Αλεχ-Zhukovsky Автор вопроса
Artem Medvedev
Вплане? ключ же будет референсом, а структура буде...

Iter<..> возвращает &AtlasRoute, а мне нужно передать его в функцию которой нужен AtlasRoute

Αλεχ Zhukovsky
Iter<..> возвращает &AtlasRoute, а мне нужно перед...

а, ну тогда через into_iter() с аллокациями ключа, или группировать иначе

Αλεχ-Zhukovsky Автор вопроса
kitsu
А ты циклом сможешь написать код группировки без а...

1. пока накапливаешь группу ссылаешься на любое из значений (например, на первое) 2. когда группа закончилась отпустил ссылку и отдал владеющую группу С дизайном (key, group) такое нельзя сделать, но необязательно key возвращать, юзер может сам из группы ключ посчитать

Αλεχ Zhukovsky
1. пока накапливаешь группу ссылаешься на любое из...

1. ссылки где хранить, в аллоцируемой коллекции?

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта